maven警告:使用同一工件的两种不同类型的依赖时的重复版本

MKo*_*sch 6 dependencies pom.xml maven

在构建我们的多模块项目时,Maven发出了一个奇怪的警告.我只是在另一个项目中引用同一项目的jartest-jar.两个依赖项都有测试范围.我正在运行Maven 3.3.1并且无法轻松升级版本.

你有没有人知道如何在没有得到maven警告的情况下解决问题?

ProjectA的pom.xml:

    <dependency> <!-- This is line 130 -->
        <groupId>${project.groupId}</groupId>
        <artifactId>projectB</artifactId>
        <version>${project.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>projectB</artifactId>
        <version>${project.version}</version>
        <scope>test</scope>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

来自maven的警告(匿名):

[警告]在为org.group.ProjectA构建有效模型时遇到一些问题:1.0-SNAPSHOT [警告]'dependencies.dependency.(groupId:artifactId:type:classifier)'必须是唯一的:$ {project.groupId} :org.group.ProjectB:jar - >版本$ {project.version}的重复声明@ org.group.ProjectA,/ var/lib/jenkins/jobs/nicejob /workspace/org.group.ProjectA/pom.xml,第130行,第15栏

小智 1

查看test-jar 文档,我会说这两个工件基本上是相同的,并且“test-jar”工件预计不会在测试阶段之外使用,因为它包含测试类。

一个好的方法可能是:

  • 将“标准”依赖项保留在编译范围内(如果您确实需要它提供的非测试类)
  • 仅使用“test-jar”依赖项作为surefire-plugin的附加依赖项声明(带有测试范围),以便它仅由插件本身使用