Maven下载SpringAOP3.0.0.RC3,而不是3.1.1.Final
我正在尝试从Maven升级SpringAOP。我试图从.m2 repo中删除所有Spring文件,但是,当我运行mvn dependency:tree时,我看到的是3.0.0.RC3,而不是3.1.1.final 依赖关系树:Maven下载SpringAOP3.0.0.RC3,而不是3.1.1.Final,spring,maven,aop,Spring,Maven,Aop,我正在尝试从Maven升级SpringAOP。我试图从.m2 repo中删除所有Spring文件,但是,当我运行mvn dependency:tree时,我看到的是3.0.0.RC3,而不是3.1.1.final 依赖关系树: [INFO] com.abercrombie.loyalty:LoyaltyProvider:war:0.0.1-SNAPSHOT [INFO] +- org.springframework:spring-aop:jar:3.0.0.RC3:compile [INFO]
[INFO] com.abercrombie.loyalty:LoyaltyProvider:war:0.0.1-SNAPSHOT
[INFO] +- org.springframework:spring-aop:jar:3.0.0.RC3:compile
[INFO] +- org.springframework:spring-beans:jar:3.1.1.RELEASE:compile
[INFO] +- org.springframework:spring-context:jar:3.1.1.RELEASE:compile
[INFO] | \- org.springframework:spring-asm:jar:3.1.1.RELEASE:compile
[INFO] +- org.springframework:spring-context-support:jar:3.1.1.RELEASE:compile
[INFO] +- org.springframework:spring-core:jar:3.1.1.RELEASE:compile
[INFO] | \- commons-logging:commons-logging:jar:1.1.1:compile
[INFO] +- org.springframework:spring-expression:jar:3.1.1.RELEASE:compile
[INFO] +- org.springframework:spring-jdbc:jar:3.1.1.RELEASE:compile
[INFO] +- org.springframework:spring-orm:jar:3.1.1.RELEASE:compile
[INFO] +- org.springframework:spring-tx:jar:3.1.1.RELEASE:compile
[INFO] | \- aopalliance:aopalliance:jar:1.0:compile
[INFO] +- org.springframework:spring-web:jar:3.1.1.RELEASE:compile
[INFO] +- org.springframework:spring-test:jar:3.1.1.RELEASE:compile
[INFO] +- org.springframework:spring-webmvc:jar:3.1.1.RELEASE:compile
[INFO] +- com.thoughtworks.xstream:xstream:jar:1.3.1:compile
[INFO] | \- xpp3:xpp3_min:jar:1.1.4c:compile
[INFO] +- com.ibm.db2:db2jcc:jar:2.10.113:compile
[INFO] +- com.ibm.db2:db2jcc_license:jar:2.10.113:compile
[INFO] +- org.hibernate:hibernate-core:jar:3.5.6-Final:compile
[INFO] | +- antlr:antlr:jar:2.7.6:compile
[INFO] | +- commons-collections:commons-collections:jar:3.1:compile
[INFO] | +- dom4j:dom4j:jar:1.6.1:compile
[INFO] | | \- xml-apis:xml-apis:jar:1.0.b2:compile
[INFO] | +- javax.transaction:jta:jar:1.1:compile
[INFO] | \- org.slf4j:slf4j-api:jar:1.5.8:compile
[INFO] +- org.hibernate:hibernate-annotations:jar:3.5.6-Final:compile
[INFO] | +- org.hibernate:hibernate-commons-annotations:jar:3.2.0.Final:compile
[INFO] | \- org.hibernate.javax.persistence:hibernate-jpa-2.0-api:jar:1.0.0.Final:compile
[INFO] +- commons-dbcp:commons-dbcp:jar:1.4:compile
[INFO] | \- commons-pool:commons-pool:jar:1.5.4:compile
[INFO] +- org.slf4j:slf4j-simple:jar:1.5.6:compile
[INFO] +- javassist:javassist:jar:3.12.1.GA:compile
[INFO] +- cglib:cglib:jar:2.2.2:compile
[INFO] | \- asm:asm:jar:3.3.1:compile
[INFO] +- com.sun.xml.bind:jaxb-impl:jar:2.1.12:compile
[INFO] | \- javax.xml.bind:jaxb-api:jar:2.1:compile
[INFO] | +- javax.xml.stream:stax-api:jar:1.0-2:compile
[INFO] | \- javax.activation:activation:jar:1.1:compile
[INFO] +- com.sun.jersey:jersey-core:jar:1.11:compile
[INFO] +- com.sun.jersey:jersey-server:jar:1.11:compile
[INFO] \- com.sun.jersey.contribs:jersey-spring:jar:1.11:compile
[INFO] \- com.sun.jersey:jersey-servlet:jar:1.11:compile
POM相关性
<spring.version>3.1.1.RELEASE</spring.version>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
3.1.1.1发布
org.springframework
春季aop
${spring.version}
org.springframework
春豆
${spring.version}
org.springframework
spring上下文
${spring.version}
如何使用3.1.1.Final获得它?我猜您可能在其他地方声明了依赖关系(例如,此项目或父项目中的dependencyManagement部分)。尝试运行
mvn帮助:effective pom
,查看实际的pom,然后从那里开始工作。您的另一个依赖项几乎肯定是过渡地引入了不同版本的spring。我确认,如果我在jersey spring上添加一个依赖项,我会得到一个旧版本的spring aop。您只需添加一个dependencyManagement
部分即可解决此问题。要演示此问题,请尝试将以下内容放入一个空的maven项目中:
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>3.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-spring</artifactId>
<version>1.11</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>3.1.1.RELEASE</version>
</dependency>
</dependencies>
</dependencyManagement>
org.springframework
春季aop
3.1.1.1发布
com.sun.jersey.contribs
泽西之春
1.11
org.springframework
春季aop
3.1.1.1发布
查看
mvn dependency:tree
的输出。您将看到正确的spring aop版本。然后删除dependencyManagement
部分。这将是一个旧版本。删除对jersey spring的依赖关系,您将再次获得正确版本的spring aop。spring aop依赖于其他jar使用mvn dependency:tree查看完整详细信息。哪个jar依赖于其他jar。这是完整的依赖项部分吗,因为看起来您在war项目中的某个地方选择了3.0.0.RC3版本?在你的项目中是否有一些依赖管理部分(可能是家长等?)+1来拯救我的早晨。对泽西岛的依赖给我带来了问题。