コンパイルとデプロイメントのjar依存関係を管理する適切な方法について一般的な質問があります。私は通常、単純なライブラリ/アプリケーション用に次のようなdevディレクトリをレイアウトします。
Calculator
src
test
build
lib
…
これを行うには多くの方法がありますが、これは一般的なプロジェクトの私の典型的なレイアウトです。私の質問はlibディレクトリを中心に展開しています。私は通常、プロジェクトが依存しているjarをlibディレクトリ(log4jなど)に配置します。したがって、コンパイル時に、さまざまなパスをlib\log4j.jarなどに設定できます。配布可能なパッケージを作成するとき、私はこのレイアウトを反映する傾向があります。
dist
Calculator.jar
lib
log4j.jar
addition.jar
subtraction.jar
これにより、メインjarの場所を基準にしてクラスパスを設定するスクリプトを設定するか、メインjar(この場合はCalculator.jar)のマニフェストにクラスパスを設定できます。これが最善の方法である場合とそうでない場合があります。これを行うが、それは私にとってはうまくいき、私がこれについて話し合った他の開発者によって依存関係を処理するための受け入れられた方法のようです。
私の質問は、私がこのようにレイアウトした他のプロジェクトを利用する新しいプロジェクトを作成したいときに起こります。
したがって、上記のサンプルのCalculatorプロジェクトを使用する新しい計算機プロジェクトを作成するとします。同じレイアウトに従うと、次のようになります。
dist
ScentificCalculator.jar
lib
Calculator.jar
lib
Log4j.jar
addition.jar
subtraction.jar
もちろん、これは依存関係ツリーが深くなると手に負えなくなる可能性があります。
SuperWhizBangCalculator.jar
lib
ScientificCalculator.jar
lib
Calculator.jar
lib
log4j.jar
addition.jar
subtraction.jar
別のオプションは、ツリーを平らにすることです。
SuperWhizBangCalculator
lib
ScientificCalculator.jar
Calculator.jar
log4J.jar
addition.jar
subtraction.jar
しかし、これについて何かが正しくないようです。どのライブラリがどのコンポーネントに依存しているかを示す構造が失われます。だから私は、これを行うためのコミュニティ主導の標準的な方法があるかどうか疑問に思いました。一度のサイズがすべてに適合することは決してないということを理解しています。
時間をありがとう...