又是项目总结的时候了,说一下maven使用中遇到的问题以及解决方案。
在新项目的开发中,使用maven进行持续构建,在搭建框架的过程中经常遇到jar冲突的问题,现在来介绍下如何去除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>
这种方式排除不了我项目中对第三方jar包所依赖的其他依赖,因为我不可能去修改第三方jar包的pom文件,所以只适合在项目组内部使用。
2、依赖过滤
将依赖于project2中的某一个jar过滤掉,如下:
<dependency>
<groupId>com.project</groupId>
<artifactId>project2</artifactId>
<version>${project.version}</version>
<exclusions>
<exclusion>
<artifactId>poi</artifactId>
<groupId>poi</groupId>
</exclusion>
<exclusion>
<artifactId>log4j</artifactId>
<groupId>log4j</groupId>
</exclusion>
</exclusions>
</dependency>
配置了这个,终于清净了,启动没报错。