如何将所有依赖项升级到特定版本

时间:2010-04-07 08:54:12

标签: java maven-2

我尝试了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

更新:我已经删除了关于“\ - ”的额外问题,所以我现在的问题是主题要求:)

3 个答案:

答案 0 :(得分:3)

该子树的结尾。没有什么比ascii艺术更奇特 - 想想它的+ -

答案 1 :(得分:2)

有两种解决方案:

  1. OSS方式:下载您所依赖的项目,将它们迁移到最新版本的Spring并向其发送补丁,以便每个人都能获得新功能

  2. 覆盖您自己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>

Introduction to the Dependency Mechanism提供了更多信息。