java - 禁用传递依赖项不起作用

标签 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 不自动下载传递依赖项,或者不将它们添加到我的“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/

相关文章:

java - Maven 项目从依赖项运行 sql-maven-plugin 执行

java - String.subString() 和 String.subSequence() 有什么区别

java - && 显示为意外标记

java - : ConcurrentUpdateSolrServer vs HttpSolrServer vs CommonsHttpSolrServer?有什么区别

java - Maven 测试传递范围

osgi - 如何使用 Maven bundle 插件从包中排除包

java - IntelliJ - 将 Java 项目/模块转换为 Maven 项目/模块

java - log4j 示例配置文件(属性文件)

java - 带有配置文件的 Spring Boot Maven 多模块项目 - 未找到其他模块的包

java - ECLIPSE:如何导出最小的jar文件