5

最近、Java 用のサードパーティ ライブラリを作成しました。現在、私は Github と私が所有する Web サイトを介してライブラリを配布しており、そこで JAR ファイルをダウンロードできるようにしています。開発者が Gradle と Maven (およびおそらく他のビルド自動化ツール) を使用して、サードパーティのライブラリをプロジェクトに簡単に含めることができるようにしたいと考えています。

Maven、Gradle、Bintray、JCenter、MavenCentral、Ivy などは初めてですが、Ant、Java、および Linux の経験はあります。

上記のツール/プラットフォームを使用してサードパーティのライブラリを公開する方法を学ぼうとしましたが、混乱してしまいました。

  • 私が読んだことによると、Gradle、Maven、および Ant は競合するテクノロジーです。では、実際のユースケース シナリオのコンテキストで、なぜ Gradle が Maven とそれほど絡み合っているように見えるのでしょうか?
  • Bintray は、ソフトウェアの公開および配布プラットフォームとしての地位を宣伝しています。では、JCenter を他の Bintray とは異なるものとして作成する必要があったのはなぜでしょうか? JCenter にできて、Bintray にできないことは何ですか?
  • Bintray でテスト パッケージとバージョンを作成し、そのバージョンに JAR ファイルをアップロードしました。その JAR ファイルを依存関係として Java プロジェクトに含めることができる Gradle スクリプトを作成することは可能ですか? または、パッケージを JCenter と「リンク」する必要がありますか?

基本的に、上記のすべてのテクノロジーで何が起こっているのか誰か教えてもらえますか? この投稿の疑問符で終わるすべての文に答える義務があるとは思わないでください。これらの質問は、主に私の現在の理解レベルを示すことを目的としています。テクノロジーがどのように連携するかについての簡単な概要は素晴らしいものであり、可能であれば、この投稿のタイトルにある質問への回答です.

4

2 に答える 2

5

疑問符で終わるすべての文に答えてみます:)

私が読んだことによると、Gradle、Maven、および Ant は競合するテクノロジーです。では、実際のユースケース シナリオのコンテキストで、なぜ Gradle が Maven とそれほど絡み合っているように見えるのでしょうか?

ビルド ツールおよび依存関係マネージャー (Maven が Gradle と競合する) であることに加えて、Maven は標準成果物記述子 (POM ファイル)、標準プロジェクト レイアウト (src/main/java など)、および標準成果物レイアウト ( groupId/version/artifactId-version.ext) を導入しました。 Maven の人気により、業界では事実上の標準になりました。それらは特に悪いわけではないので、今のところ問題なく動作しており、Gradle も同様に動作します。

また、Gradle は、Maven がすでに非常に人気があったときに登場しました。このような人気のあるテクノロジーを追い越すために、Gradle はクリーンで簡単な移行パスを提供する必要がありました。これは、Maven 構造のプロジェクト、Maven 構造のローカル キャッシュなどをサポートすることを意味します。

Bintray は、ソフトウェアの公開および配布プラットフォームとしての地位を宣伝しています。では、JCenter を他の Bintray とは異なるものとして作成する必要があったのはなぜでしょうか? JCenter にできて、Bintray にできないことは何ですか?

JCenterは、Bintray とは「異なるもの」ではありません。JCenter は Bintray 内のリポジトリです。このリポジトリは特別です (このタイプのリポジトリを「中央リポジトリ」と呼びます)。これは、Bintray チーム自身が管理しており、世界最大の Java ライブラリのコレクションが含まれている (またはリンクしている) ためです。Bintray を介して自分の作品を公開するつもりがなく、他の人の個人リポジトリを気にしない多くの Java (または Android) 開発者にとって、Bintray で関心のある唯一のものは JCenter です。そのため、人々は JCenter を独自のものと呼んでいます。

Bintray でテスト パッケージとバージョンを作成し、そのバージョンに JAR ファイルをアップロードしました。その JAR ファイルを依存関係として Java プロジェクトに含めることができる Gradle スクリプトを作成することは可能ですか?

絶対。[Set Me Up] ボタンをクリックするとウィンドウが開き、Gradle に個人用リポジトリを追加する方法が表示されます。完了すると、リポジトリのアーティファクトが Gradle プロジェクトで解決できるようになります。

または、パッケージを JCenter と「リンク」する必要がありますか?

パッケージを JCenter に含める利点は、サードパーティの依存関係のソースとして JCenter に精通しているが、Bintray のリポジトリに精通していない他の開発者がライブラリを見つけて使用できることです。

お役に立てば幸いです。


私は、Bintray[artifactory]​​の背後にある会社であるJFrogに所属しています。詳細とリンクについては、私のプロフィールを参照してください。

于 2016-02-25T19:37:31.170 に答える