删除maven中的传递依赖项

时间:2013-10-15 14:46:14

标签: java maven-2 slf4j build-dependencies

我正在努力将一些遗留代码移植到新版本。一个特定的模块(slf4j),其中1.5x版本与1.6x和1.7x不兼容,我的问题是我的项目依赖的项目作为jar路径包含在类路径中。有办法解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

如果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>

camel-core有一个传递依赖slf4j-api-1.6.6但Maven会选择slf4j-api-1.7.5

答案 1 :(得分:0)

我解决问题的方法是重新部署我的项目所依赖的项目。因为它是一个jar我必须以maven格式重新创建它并添加必要的排除语句来停止该级别的所有传递依赖。这可能不是最好的做法,但在我的情况下工作。我想更新版本的项目都是基于maven的排除标签应该足够了