禁用传递依赖关系不起作用

时间:2015-05-19 18:34:29

标签: java maven pom.xml transitive-dependency

我的项目有一些依赖(真的很多),我依赖它们添加它们。但我不想要任何传递依赖,这将是我无法控制的(maven带给我的几乎是我需要的三倍)。我试图以这种方式禁止传递依赖:

<exclusions>
        <exclusion>
            <groupId>*</groupId>
            <artifactId>*</artifactId>
        </exclusion>
</exclusions>

但是在我做了一个mvn包后,传递的依赖关系仍然被下载并添加到我的构建包中。这是maven的日志记录:

[DEBUG] Dependencies for project:com.XXX.XXX:
org.apache.XXX
org.apache.XXX.YYY
...
[DEBUG] Resolving project dependencies transitively:
[DEBUG] org.com.XXX.yyy
[DEBUG]    org.apache.ZZZ
...
[DEBUG] Adding artifact: org.apache.ZZZ with file: ${file name} to assembly location: lib/${file name}.jar
...

所以这不是我想要的。我想要maven DON&T; T自动下载传递依赖关系,或者不要将它们添加到我的mvn包中。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

所以这是我得到的解决方案。 Maven仍然在抓住所需的传递依赖。我所做的只是在装配阶段只包括我想要的罐子。在程序集配置文件中,我手动添加我想要的jar

<dependencyset>
   <includes>
      <include>com.XXX:XXX:jar:2.6.0</include>
   </includes>
<dependencyset>

与我不想要的(数百个传递依赖性罐子)相比,添加我想要的更实际。这很好地解决了这个问题。