【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>
还有一些情况,你可能也想要替换某个传递性依赖,比如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>
相关文章推荐
- maven3实战之坐标和依赖(最佳实践之排除依赖)
- Maven学习总结(41)——Maven依赖范围、传递、排除详解
- 解决:Maven改过依赖后,仍然打包已排除的依赖包
- 09(maven+SSH)网上商城项目实战之使用jersey实现应用服务器和图片服务器分离
- maven3实战之坐标和依赖(最佳实践之优化依赖)
- maven打包排除spring-boot内嵌tomcat容器依赖jar
- Maven的依赖范围、依赖冲突、依赖排除和版本限定
- Maven 实战 02 依赖
- 【Maven】依赖排除 禁止依赖传递 取消依赖的方法
- Maven的依赖-硬依赖,传递依赖,依赖排除(NEW)
- 在Maven中当包的依赖发生冲突的时候,我们可以通过exclusion来进行排除依赖
- Maven依赖排除 禁止依赖传递 取消依赖的方法
- 一点一点学maven(07)——maven依赖(范围、传递、排除、冲突)
- maven实战第四篇_04_yucong_依赖范围scope的介绍:test,complile
- (二十一)maven实践-依赖排除
- Maven实战(六)依赖
- Maven实战——Maven的坐标和依赖
- 排除依赖包,Maven
- maven可选依赖(Optional Dependencies)和依赖排除(Dependency Exclusions)
- Maven实战(六)依赖