我当前的项目包含父pom文件和几个依赖项目。 在父母的pom中,我从spring指定了这些库:
<properties>
<spring.framework.version>3.2.4.RELEASE</spring.framework.version>
</properties>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.framework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.framework.version}</version>
</dependency>
项目A上包含其他所有基本类,并包含在每个子模块中。我使用在父POM中定义的spring版本。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
</dependency>
在项目B中我引用了项目A,但我想使用这个库的3.1.O.RELEASE。
我试图排除这些库并将特定版本放在项目的B pom文件中,但它没有起作用。我还有3.2.4.RELEASE版本。
任何想法我该如何解决?
谢谢!
答案 0 :(得分:0)
在项目B的POM中明确地精确定义库版本:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>3.1.O.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>3.1.O.RELEASE</version>
</dependency>
它将覆盖任何传递依赖版本。 一定要精确所有Spring工件,因为有很多。最好的方法是使用spring.framework.version属性在parentManagement中包含所有Spring deps。然后将此属性覆盖为项目B中的正确版本:
<properties>
<spring.framework.version>3.1.O.RELEASE</spring.framework.version>
</properties>