我遇到这种情况:
我知道“Maven通过最近赢的策略解决版本冲突”。所以这里基于这个规则赢得了aop 3.0.7。但我也在我的pom中定义了dependencyManagement部分,它看起来像这样:
<properties>
<org.springframework.version>3.2.4.RELEASE</org.springframework.version>
<org.springframework.security.version>3.1.4.RELEASE</org.springframework.security.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${org.springframework.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>${org.springframework.security.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>${org.springframework.security.version}</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.7.1</version>
</dependency>
</dependencies>
</project>
这就是依赖选项卡上的所有内容:
所以我希望spring-aop使用3.2.4.RELEASE版本而不是像webmvc那样的3.0.7,因为我在依赖管理中定义了这个版本。为什么仍然使用旧版本3.0.7 ?
答案 0 :(得分:5)
你的依赖管理声明有一个拼写错误(com.springframework而不是org.springframework)。
这是正确的pom条目:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>3.2.4.RELEASE</version>
</dependency>
不幸的是,由于没有使用依赖项,Maven(或Eclipse)不会将其标记为缺失的工件。