私が書いた Java パッケージを、寛大なライセンスの下で配布したいと思っています。
結果speedytools-0.1.jar
には、Apache Commons や Guava などの一般的な Java 依存関係がいくつかあります。
このjarを配布する最もJava風の方法は何ですか? 配布した zip ファイルに依存関係を含める必要がありますか?
私が書いた Java パッケージを、寛大なライセンスの下で配布したいと思っています。
結果speedytools-0.1.jar
には、Apache Commons や Guava などの一般的な Java 依存関係がいくつかあります。
このjarを配布する最もJava風の方法は何ですか? 配布した zip ファイルに依存関係を含める必要がありますか?
jarjar : "2004 年以降の Java ライブラリの埋め込み。"
別のライブラリの依存関係と競合する可能性がある依存関係の特定のバージョンに依存するライブラリについて心配する必要はありません。
将来のリリースで依存関係を追加する場合は、ライブラリを自由に変更できます。ユーザーはビルド スクリプトを再構成する必要はありません。
ニーズに合わせてライブラリにパッチを当てることができます。これらの一般的な Java 依存関係の 1 つの特別なビルドが必要な場合は、ハックしてください。ビルドはパブリック バージョンと互換性がある必要さえありません。
パッケージをダウンロードして実装するプロセス全体が非常に簡単になります。これがどの程度有益か (あるいは望ましいか) は、パッケージが何であるか、何をするのか、誰のためにそれをしたいかによって明らかに異なります。確かに、私が想像できるほとんどのユースケースでは Maven ソリューションを好みますが、それにもかかわらず、jarjar は間違いなくこれと同じくらいオープンエンドの質問に位置していると思います。それは理想的です。
ps 素晴らしい質問です。他の回答を楽しみにしています。