質問

GUIなしでJavaコマンドラインプロジェクトを作成しています。このプロジェクトでは、Spring、Logback、Commons CLIなどの数のオープンソースプロジェクトを使用しています。パッケージングについて考え始めたとき、それはzipファイルとして出てくると想像してください。 、およびlibの依存瓶。

adapter.jar
 /lib/dependencyA.jar
 /lib/dependencyB.jar 
 etc.  

私はMaven Assemblyで遊んでいますが、まだ上記のように出てきていません。上記の構造を生成する例は見つかりませんでした。そうすることは可能ですか?さらに、マルチモジュール構造を使用すると、アセンブリモジュールが依存関係としてコアモジュールを見つけることができないため、解決できなかった複雑さの別の層が追加されます。これは私の最初のMavenプロジェクトですので、Mavenがどのように機能するかをまだ学んでいます。私はSonatypeの本を通して行ってきましたが、Best Practicesセクションを使用しても不足している依存関係が解決できないため、何かを逃しました。私が見た例には、通常、Uber実行可能ファイルの瓶に合流することが含まれます。私の質問は、春などのサードパーティライブを含むUberジャーを行うことは良いアイデアですか?それとも、元のzip / libサブディレクトリプランを忍耐する必要がありますか?

役に立ちましたか?

解決

アセンブリモジュールにパッケージ化するモジュールに依存させ、次に使用しますu003CdependencySets>のu003CmoduleSets>希望するレイアウトにそれらを含めるタグ。依存関係から来ていない他のファイルがある場合は、展開モジュール自体にそれらを配置できます。

アセンブリ記述子ドキュメントをよく読んでください。アセンブリ内のファイルの許可を梱包、開梱、除外、および設定することができます。

MavenでSonatypeの本を見たことがない場合は、ここに関連する章があります。 http://www.sonatype.com/books/mvnref-book/reference/assemblies-sect-best-pracces.html

編集:<'sを逃がしました

他のヒント

アセンブリの記述子でもっと具体的にする必要があります。メインジャーのみを含む1つの依存関係セットを使用して、それを上部に配信し、メインジャーのみを除外し、LIBディレクトに配信する別の依存関係セットを使用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top