質問のタイトルでわかりにくい場合は、ここで詳しく説明します。あるMavenアプリケーションの本番jarを他のMavenWebアプリケーションで使用する必要があるとします。そのjarを2番目のアプリケーションのMaven依存関係に追加しても、推移的な依存関係は追加されません。また、jar自体はアプリケーションです。
1つの方法は、最初のアプリケーションのPOMを確認し、それらを他のアプリケーションのPOMに追加することです。しかし、中央のMaven jarは、プロジェクトに追加されたときに、どのようにして独自の推移的な依存関係を追加するのでしょうか。
つまり、commons-io.jar
プロジェクトにMaven依存関係を追加すると、推移的な依存関係が自動的に追加されます。しかしmyjar.jar
、Maven依存関係(スコープ->システム)として追加すると、推移的な依存関係が自動的に追加されません。
そのような場合に使用できる他の原型として、最初のアプリケーションを開発する必要があると思います。先に進む方法を教えてください。
この初心者の質問でごめんなさい。実際、私はMavenを初めて使用し、Netbeans-embedded-mavenを使用してアプリケーションを作成し始めました。Mavenが仕事を単純化する方法が本当に好きです。
edited
もっと詳しく説明したほうがいいようです。これがこれです。
A.jar、B.jar、C.jarを使用するプログラム/アプリケーションを作成し、本番出力がX.jar(Mavenのデフォルトビルドに従って他のjarが含まれていないことは明らかです)であるとします。上記のA、B、C jarは、Maven中央リポジトリに存在し、プロジェクトへの依存関係として追加されました。プロジェクトビルドjarはX.jarです
ここで、システム依存関係としてX.jarを追加した別のアプリケーションを作成します。必要なのは、A.jar、B.jar、C.jarがX.jarの推移的な依存関係であるため、プロジェクトに自動的に追加されることです。
今回はそれを明確に説明したことを願っています。以前に理解できなかった場合に備えて、私の文体をお許しください。
1つの解決策は、次のようなものを使用して、その中にすべての依存関係を含むX.jarを構築することです。
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.nitinsurana.mlmmaven.Start</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-my-jar-with-dependencies</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
しかし、私はシステム依存関係の推移的な依存関係を自動的に追加するものを探しています。