Maven传递依赖的解决方式

来源:互联网 发布:雷欧mac全灭图解 编辑:程序博客网 时间:2024/05/21 17:18

maven的传递依赖是好东西,但是造成的jar冲突却是让人很疼!

有的时候就想干脆不要传递依赖了,所有的依赖都自己来搞,下面提供几种方式:

1. 项目间传递
如果我的当前项目是project1,project1要依赖project2,project1依赖project2的配置中加上<optional>true</optional>,表示依赖可选:

<dependency>      <groupId>com.projecct</groupId>      <artifactId>project2</artifactId>      <version>1.0</version>      <scope>compile</scope>      <optional>true</optional>  </dependency> 
那么以后所有声明依赖project1的项目如果也依赖project2,就必须写手动声明。比如project3依赖project1和project2,如果project3只声明了对project1的依赖,
那么project2不会自动加入依赖,需要重新声明对project2的依赖。

这种方式排除不了我项目中对第三方jar包所依赖的其他依赖,因为我不可能去修改第三方jar包的pom文件,所以只适合在项目组内部使用。


2.依赖过滤

1)单依赖过滤

<dependency>           <groupId>org.apache.hbase</groupId>       <artifactId>hbase</artifactId>       <version>0.94.17</version>        <exclusions>               <exclusion>                        <groupId>commons-logging</groupId>                            <artifactId>commons-logging</artifactId>               </exclusion>         </exclusions>    </dependency>   

2)多依赖过滤

把所以依赖都过滤了。手起刀落~啊,世界都安静了。

<dependency>      <groupId>org.apache.hbase</groupId>      <artifactId>hbase</artifactId>      <version>0.94.17</version>      <exclusions>          <exclusion>              <groupId>*</groupId>              <artifactId>*</artifactId>          </exclusion>      </exclusions>  </dependency> 




0 0
原创粉丝点击