您的位置:首页 > 其它

【maven实战】09-排除依赖

2018-02-03 21:02 260 查看
传递性依赖会给项目隐式地引入很多依赖有些时候这种特性也会带来问题。例如,当前项目有一个第三方依赖,而这个第三方依赖由于某些原因依赖了另外一个类库的SNAPSHOT版本,那么这个SNAPSHOT就会成为当前项目的传递性依赖,而SNAPSHOT的不稳定会直接影响到当前的项目。这时候就需要排除掉该SNAPSHOT,并且在当前项目中声明该类库的某个正式版本。

还有一些情况,你可能也想要替换某个传递性依赖,比如Sun JTA API,Hibernate依赖于这个jar,但是由于版权的因素,该类库不在中央仓库中,而Apache Geronimo项目有一个对应的实现。这时候你可以排除Sun JAT API,再声明Geronimo的JTA API实现如下:

<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.learn.mvn</groupId>
<artifactId>project-a</artifactId>
<version>1.0.0</version>
<dependencies>
<dependency>
<groupId>com.learn.mvn</groupId>
<artifactId>project-b</artifactId>
<version>1.0.0</version>
<exclusions>
<exclusion>
<groupId>com.learn.mvn</groupId>
<artifactId>project-c</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.learn.mvn</groupId>
<artifactId>project-c</artifactId>
<version>1.1.0</version>
</dependency>
</dependencies>
</project>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: