我尝试了mvn dependency:tree
,我得到了一棵依赖树。
我的问题是,我的项目取决于许多内部依赖于许多弹簧工件的模块。有几个版本的冲突。我想升级所有与Spring相关的库来说出最新的库(2.6.x或更高版本)。这样做的首选方法是什么?
我应该在pom.xml中声明所有deps spring-context,spring-support(以及其他10个工件)并将它们指向2.6.x?还有其他更好的方法吗?
[INFO] +- com.xxxx:yyy-jar:jar:1.0-SNAPSHOT:compile
[INFO] | +- com.xxxx:zzz-commons:jar:1.0-SNAPSHOT:compile
[INFO] | | +- org.springframework:spring-dao:jar:2.0.7:compile
[INFO] | | +- org.springframework:spring-jdbc:jar:2.0.7:compile
[INFO] | | +- org.springframework:spring-web:jar:2.0.7:compile
[INFO] | | +- org.springframework:spring-support:jar:2.0.7:compile
[INFO] | | +- net.sf.ehcache:ehcache:jar:1.2:compile
[INFO] | | +- commons-collections:commons-collections:jar:3.2:compile
[INFO] | | +- aspectj:aspectjweaver:jar:1.5.3:compile
[INFO] | | +- betex-commons:betex-commons:jar:5.5.1-2:compile
[INFO] | | \- javax.servlet:servlet-api:jar:2.4:compile
[INFO] | +- org.springframework:spring-beans:jar:2.0.7:compile
[INFO] | +- org.springframework:spring-jmx:jar:2.0.7:compile
[INFO] | +- org.springframework:spring-remoting:jar:2.0.7:compile
[INFO] | +- org.apache.cxf:cxf-rt-core:jar:2.0.2-incubator:compile
[INFO] | | +- org.apache.cxf:cxf-api:jar:2.0.2-incubator:compile
[INFO] | | | +- org.apache.geronimo.specs:geronimo-activation_1.1_spec:jar:1.0-M1:compile
[INFO] | | | +- org.codehaus.woodstox:wstx-asl:jar:3.2.1:compile
[INFO] | | | +- org.apache.neethi:neethi:jar:2.0.2:compile
[INFO] | | | \- org.apache.cxf:cxf-common-schemas:jar:2.0.2-incubator:compile
更新:我已经删除了关于“\ - ”的额外问题,所以我现在的问题是主题要求:)
答案 0 :(得分:3)
该子树的结尾。没有什么比ascii艺术更奇特 - 想想它的+ -
答案 1 :(得分:2)
有两种解决方案:
OSS方式:下载您所依赖的项目,将它们迁移到最新版本的Spring并向其发送补丁,以便每个人都能获得新功能
覆盖您自己POM中每个依赖项的版本。
答案 2 :(得分:2)
你看过dependecyManagement
标签了吗?它允许您指定父pom的每个依赖项的版本号。然后,您所有其他poms都可以继承指定的版本:
<properties>
<spring.version>2.5.6</spring.version>
</properties>
...
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- more dependencies -->
</dependencies>
</dependencyManagement>