我试图了解项目的 pom.xml 文件中的依赖项与 java 类路径/构建路径的顺序之间的联系(我的问题也是关于 pom 的继承)。
到目前为止,我无法找到详细的分步说明。
我已经注意到它肯定不是“相同的”,这意味着有时我在 pom.xml 中的依赖项不会出现在 eclipse 的构建路径中或者不会以相同的顺序出现(在提交mvn eclipse:eclipse -$一些标志)。
例如,假设我有以下 Parent 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?不确定?何时以及为什么其中一个应该/不应该出现在构建路径中?
- CHILD 项目的类路径文件是否应该包含:PARENT、SOME_OTHER_ARTIFACT1、SOME_OTHER_ARTIFACT2?不确定?何时以及为什么其中一个应该/不应该出现在构建路径中?
- 它是否与运行mvn eclipse:eclipse时使用的标志(即$someflag )有关?
- 库中的 jar 是否也应该按照正在初始化的项目中依赖项的顺序出现?即PARENT,SOME_OTHER_ARTIFACT1,SOME_OTHER_ARTIFACT2(从上到下)一定吗?顺序何时以及为什么应该不同?
谢谢