Java Maven依赖项。更改父项';s库版本
我当前的项目由父pom文件和两个相关项目组成。 在父级的pom中,我从spring中指定以下库:Java Maven依赖项。更改父项';s库版本,java,maven,Java,Maven,我当前的项目由父pom文件和两个相关项目组成。 在父级的pom中,我从spring中指定以下库: <properties> <spring.framework.version>3.2.4.RELEASE</spring.framework.version> </properties> <dependency> <groupId>org.springframework</groupId> <art
<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>
3.2.4.1发布
org.springframework
SpringJDBC
${spring.framework.version}
org.springframework
春季aop
${spring.framework.version}
项目A中有一个包含其他所有基本类并包含在每个子模块中的项目。我使用在父级POM中定义的spring版本
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
</dependency>
org.springframework
SpringJDBC
org.springframework
春季aop
在项目B中,我引用了项目a,但我想使用此库的3.1.O.RELEASE
我试图排除这些库,并将特定版本放在项目的B pom文件中,但没有成功。我仍然有3.2.4.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>
<properties>
<spring.framework.version>3.1.O.RELEASE</spring.framework.version>
</properties>
org.springframework
SpringJDBC
3.1.O.发布
org.springframework
春季aop
3.1.O.发布
它将覆盖任何可传递的依赖项版本。
一定要精确所有的弹簧工件,因为有很多。最好的方法是使用Spring.framework.version属性在父级的dependencyManagement中包含所有Spring Dep。然后将此属性重写为项目B中的正确版本:
<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>
<properties>
<spring.framework.version>3.1.O.RELEASE</spring.framework.version>
</properties>
3.1.O.发布
因此,排除这些库之后,能否在项目B上运行一个mvn dependency:树,并查看谁正在过渡地带来3.2.4.Release版本?请注意,如果您确实需要某个版本,这还不够,您应该使用[3.1.O.Release]
。有关详细信息,请参见示例。实际上,它可以工作,但需要一些小的修复。我必须将所有可传递的依赖项放在pom中(如SpringBean、SpringCore等)