我正在将一些遗留代码移植到新版本。一个特定的模块(slf4j),其中1.5x版本与1.6x和1.7x不兼容,我的问题是项目依赖的项目作为jar包含在classpath中。有没有办法解决这个问题?删除maven中的传递依赖项
回答
如果在POM Maven的直接依赖关系将会使用它,并省略任何传递依赖于同一工件,如这里
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
<version>2.12.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
骆驼核心具有传递性依赖SLF4J-API-1.6.6,但Maven会选择slf4j-api-1.7.5
我不确定这是否正确,我尝试过新版本的slf4j添加到我的项目POM中。它仍然会导致兼容性问题。尽管这可能只适用于sl4j案件,但我不能肯定地说。 – user1801279
在Eclipse中很容易验证go pom“dependency hierarchy”选项卡 –
yep mvn依赖关系:树是我用来推断依赖关系仍然在偷偷摸摸的方式,即使我已经将新版本链接到我的项目 – user1801279
我解决我的问题的方法是重新部署我的项目所依赖的项目。既然它是一个jar,我不得不以maven格式重新创建它,并添加必要的排除语句来阻止该级别的所有传递依赖。这可能不是最佳做法,但在我的情况下工作。我想用更新版本的项目是所有基于maven的排除标签应该足够了
- 1. Maven:删除单个传递依赖项
- 2. Maven排除传递依赖的传递依赖
- 3. 如何排除来自Maven插件的Maven传递依赖项?
- 4. 传递依赖如何排除。 - Maven的
- 5. Maven缺少传递依赖项
- 6. 如何让maven解析本地依赖的传递依赖项
- 7. 从Maven pom中排除传递依赖项
- 8. Maven传递依赖关系
- 9. Maven传递依赖混淆
- 10. Maven。传递依赖关系
- 11. maven-shade-plugin:排除依赖关系及其所有传递依赖项
- 12. 将基于Maven的依赖项的传递依赖项收集到非Maven项目的类路径中
- 13. 在Maven中,如何从特定的依赖项中排除所有传递依赖项?
- 14. 排除maven中的嵌套传递依赖
- 15. 解决Maven的传递依赖冲突
- 16. Maven的传递依赖问题
- 17. Maven如何处理从父项继承的传递依赖项?
- 18. Maven中的Ejb3依赖项
- 19. 删除Maven Pom中的重复依赖项
- 20. Maven:我应该保留还是移除也是传递依赖项的声明的依赖项?
- 21. maven测试范围传递依赖
- 22. Eclipse插件 - Maven传递依赖问题
- 23. JBoss Maven BOM和传递依赖
- 24. Maven的错误建设项目的传递依赖
- 25. Maven GWT依赖项
- 26. maven attach依赖项
- 27. 传递测试依赖和Maven依赖循环
- 28. Maven 2 - 从传递依赖版本定义依赖版本
- 29. Maven配置文件删除依赖
- 30. Maven - 安全删除未使用的声明的依赖项
因此,您的项目取决于它本身依赖于1.5.x版本的SLF4J的东西?那是对的吗? – Vidya
是的,我打算使用1.6x和1.7x版本,它不向后兼容1.5x。每次我发起战争(我正在处理的项目)时,它都会失败,因为由于不同版本的不兼容而存在不兼容性,因为传输依赖关系 – user1801279