在没有测试 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 依赖项没有在传递依赖项的任何其他地方定义它的版本,因此必须指定特定版本。