在没有测试 jar 版本规范的情况下与 Maven 共享 src/test 类
Sharing src/test classes with Maven without version specification for test-jar
我在多个模块之间共享 src/test 类,方式与 attaching tests guide and the following question 中描述的类似。
所以,我有以下 pom.xml 依赖项:
<dependency>
<groupId>com.myco.app</groupId>
<artifactId>foo</artifactId>
</dependency>
<dependency>
<groupId>com.myco.app</groupId>
<artifactId>foo</artifactId>
<version>1.0.0-SNAPSHOT</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
BUT,与上面的问题相反,在附加测试罐时,我不想指定具体的测试罐版本。如编译级依赖:
<dependency>
<groupId>com.myco.app</groupId>
<artifactId>foo</artifactId>
<type>test-jar</type>
<scope>test</scope>
</dependency>
在这种情况下,我的 pom.xml 变得错误并显示有关缺少版本的消息。为什么会这样?为什么我可以指定 没有版本的依赖关系 而不是测试罐?有没有办法克服这个问题并使测试 jar 使用它能找到的最新 jar?
之所以可以在没有版本的情况下使用主代码依赖项,是因为我们的项目中存在 "main pom",它会自动为部分中的每个依赖项生成适当的版本。因此,可以指定每个依赖项而无需具体版本号。
另一方面,test-jar 依赖项没有在传递依赖项的任何其他地方定义它的版本,因此必须指定特定版本。
我在多个模块之间共享 src/test 类,方式与 attaching tests guide and the following question 中描述的类似。
所以,我有以下 pom.xml 依赖项:
<dependency>
<groupId>com.myco.app</groupId>
<artifactId>foo</artifactId>
</dependency>
<dependency>
<groupId>com.myco.app</groupId>
<artifactId>foo</artifactId>
<version>1.0.0-SNAPSHOT</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
BUT,与上面的问题相反,在附加测试罐时,我不想指定具体的测试罐版本。如编译级依赖:
<dependency>
<groupId>com.myco.app</groupId>
<artifactId>foo</artifactId>
<type>test-jar</type>
<scope>test</scope>
</dependency>
在这种情况下,我的 pom.xml 变得错误并显示有关缺少版本的消息。为什么会这样?为什么我可以指定 没有版本的依赖关系 而不是测试罐?有没有办法克服这个问题并使测试 jar 使用它能找到的最新 jar?
之所以可以在没有版本的情况下使用主代码依赖项,是因为我们的项目中存在 "main pom",它会自动为部分中的每个依赖项生成适当的版本。因此,可以指定每个依赖项而无需具体版本号。
另一方面,test-jar 依赖项没有在传递依赖项的任何其他地方定义它的版本,因此必须指定特定版本。