首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Maven解决jar矛盾

2013-09-08 
Maven解决jar冲突?传递依赖是maven最有特色的、最为方便的优点之一,可以省了很多配置。如a 依赖 b,b 依赖c

Maven解决jar冲突

?传递依赖是maven最有特色的、最为方便的优点之一,可以省了很多配置。如a 依赖 b,b 依赖c 默认 a也会依赖 c。但是也会带来隐患,如版本冲突。当然maven也考虑到解决办法,可以使用exclusions来排除相应的重复依赖。?


但是我们还会遇到一个严重的问题,那就是,我怎么知道是哪个包的传递依赖产生的冲突 ?那该怎么办呢?当然,maven也会有相应的解决方案。?

首先,你要在pom.xml中加上maven-project-info-reports-plugin插件。?

<reporting>?
<plugins>?
<plugin>?
<groupId>org.apache.maven.plugins</groupId>?
<artifactId>?
maven-project-info-reports-plugin?
</artifactId>?
</plugin>?

</plugins>
</reporting>?

然后再执行:mvn project-info-reports:dependencies 。生成项目依赖的报表,这样你就能够在报表中找出你版本冲突的相关性依赖了。如出现OutOfMemoryError错误,在系统环境中加入参数 MAVEN_OPTS=-Xmx512m?

最后在相应的dependency中加上exclusions来排除相关的传递依赖。?

例:?

<dependency>?
<groupId>jaxen</groupId>?
<artifactId>jaxen</artifactId>?
<version>1.1.1</version>?
<exclusions>?
<exclusion>?
<groupId>com.ibm.icu</groupId>?
<artifactId>icu4j</artifactId>?
</exclusion>?
</exclusions>?
<scope>runtime</scope>?
</dependency>

热点排行