又是项目总结的时候了,说一下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>
配置了这个,终于清净了,启动没报错。