プロジェクトの pom.xml ファイルの依存関係と Java クラスパス/ビルド パスの順序との関係を理解しようとしています (私の質問は、pom の継承に関するものでもあります)。
これまでのところ、詳細な段階的な説明を見つけることができませんでした。
「同じ」ではないことに気づきました。つまり、pom.xmlにある依存関係がEclipseのビルドパスに表示されないか、同じ順序にならないことがあります( mvn eclipse:eclipse -$をコミットした後) someflag ) .
たとえば、次の親 pom があるとします。
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>SOME_GROUP_ID</groupId>
<artifactId>PARENT</artifactId>
<version>SOME_VERSION</version>
<name>${project.groupId}:${project.artifactId}</name>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>SOME_OTHER_ARTIFACT1</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<modules>
<module>CHILD</module>
</modules>
</project>
そして、他のプロジェクトの pom.xml がそれを継承していること:
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>SOME_GROUP_ID</groupId>
<artifactId>PARENT</artifactId>
<version>SOME_VERSION</version>
</parent>
<artifactId>CHILD</artifactId>
<name>${project.groupId}:${project.artifactId}</name>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>SOME_OTHER_ARTIFACT2</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
私の質問は次のとおりです。CHILD プロジェクトで mvn eclipse:eclipse -$someflag を実行すると、次のようになります。
- CHILD プロジェクトのビルド パスには、PARENT、SOME_OTHER_ARTIFACT1、SOME_OTHER_ARTIFACT2 を含める必要がありますか? 確かではありませんか?それらの1つがビルドパスに表示されるべき/すべきでないのはいつ、なぜですか?
- CHILD プロジェクトのクラスパスファイルには、PARENT、SOME_OTHER_ARTIFACT1、SOME_OTHER_ARTIFACT2 を含める必要がありますか? 確かではありませんか?それらの1つがビルドパスに表示されるべき/すべきでないのはいつ、なぜですか?
- mvn eclipse:eclipseの実行時に使用されたフラグ (つまり$someflag ) に関連していますか?
- ライブラリ内の jar も、初期化されているプロジェクト内の依存関係の順序で表示する必要がありますか? つまり、PARENT、SOME_OTHER_ARTIFACT1、SOME_OTHER_ARTIFACT2 (上から下へ) は必然ですか? いつ、なぜ順序を変える必要があるのですか?
ありがとうございました