我的项目有一些依赖项(确实很多),我将它们添加到依赖项中。但我不想要任何传递依赖,这将超出我的控制范围(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 不自动下载传递依赖项,或者不将它们添加到我的“mvn 包”中。
感谢任何帮助。
最佳答案
所以这是我得到的解决方案。 Maven 仍在获取所需的传递依赖。我所做的就是在组装阶段只包含我想要的 jar 。在程序集配置文件中,我手动添加我想要的 jar
<dependencyset>
<includes>
<include>com.XXX:XXX:jar:2.6.0</include>
</includes>
<dependencyset>
与我不想要的东西(几百个传递依赖jar)相比,添加我想要的东西更实用。这样就很好的解决了这个问题。
关于java - 禁用传递依赖项不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30333487/