盘点Maven解决jar包冲突问题方案。
Maven的依赖仲裁优先级
路径优先:1.对于该项目而言,根据jar包的依赖路径,短的优先
声明优先:2.路径一样,被依赖者声明的前后有关,同一个pom,前面的优先
覆写优先:3.子pom优先于父pom
使用exclusions来排除相应的重复依赖
例如,我的项目的pom.xml文件,引入下面两个依赖:
<dependency>
<groupId>org.loushang.framework</groupId>
<artifactId>loushang-framework</artifactId>
<version>7.2.0</version>
<type>pom</type>
</dependency>
<!--ureport http://www.bstek.com-->
<dependency>
<groupId>com.bstek.ureport</groupId>
<artifactId>ureport2-console</artifactId>
<version>2.2.9</version>
</dependency>
其中loushang-framework
底层又引入了org.apache.poi
3.14这个版本,而ureport2-console
引入的是org.apache.poi
3.16这个版本这个版本,这就导致了我ureport2报表导出excel功能无法使用。
如果我想保留poi 3.16这个版本,就可以使用exclusions来实现,修改pom.xml文件:
<dependency>
<groupId>org.loushang.framework</groupId>
<artifactId>loushang-framework</artifactId>
<version>7.2.0</version>
<exclusions>
<exclusion>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
</exclusion>
</exclusions>
<type>pom</type>
</dependency>
<!--ureport http://www.bstek.com-->
<dependency>
<groupId>com.bstek.ureport</groupId>
<artifactId>ureport2-console</artifactId>
<version>2.2.9</version>
</dependency>
即,排除掉loushang-framework
底层引入的org.apache.poi
3.14这个版本。
参考:
- https://blog.csdn.net/HaiYunTai/article/details/53411746 ;
- http://wolfchina.iteye.com/blog/239934 ;
- Solving Dependency Conflicts in Maven;
最新评论
网飞没问题, 迪士尼+有解决方案么?
pp助手是安卓手机用的,根本下载用不来苹果
已解决
这样的话数据库里的结构为{"attachment":{"content":"xxx"}}, 要怎么才能变成{"content":"xxx"},从而使结构保持一致?
赞! make test不过的坑都写到的,谢谢楼主~
谢谢你
用了root用户还是一直502是怎么回事呢
student id 是空的