Java POM中是否有方法为依赖包指定更高版本?
我正在使用Maven在我的应用程序中设置依赖项 我使用的是SpringBootV2.1.12.RELEASE,它引入了SpringCoreV5.1.13 但也有一个最新的库Spring Integration v5.1.9,它带来了Spring Core v5.1.11.0版本 正如您所看到的,我希望Spring集成不要解决Spring Core的v5.1.11,因为它有一些漏洞 有没有办法在POM中指定Spring集成,以解决Spring核心的5.1.13而不是5.1.11Java POM中是否有方法为依赖包指定更高版本?,java,spring,spring-boot,maven,Java,Spring,Spring Boot,Maven,我正在使用Maven在我的应用程序中设置依赖项 我使用的是SpringBootV2.1.12.RELEASE,它引入了SpringCoreV5.1.13 但也有一个最新的库Spring Integration v5.1.9,它带来了Spring Core v5.1.11.0版本 正如您所看到的,我希望Spring集成不要解决Spring Core的v5.1.11,因为它有一些漏洞 有没有办法在POM中指定Spring集成,以解决Spring核心的5.1.13而不是5.1.11 另外,我不想升级到
另外,我不想升级到最新版本的Spring Boot。使用maven排除标记排除可传递的依赖项,确保排除的库直接添加到pom,或者由其他依赖项拉入
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-core</artifactId>
<version>5.1.9</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.1.11.RELEASE</version>
</exclusion>
</exclusions>
</dependency>
免责声明:这只是一个针对您当前需要的变通解决方案,只有在没有其他选项时才可以使用它,因为从长远来看,管理spring管理的依赖项本身是不可维护的 我用帖子中的推荐来克服我的挑战 因此,我从spring集成中排除了spring核心依赖项,并使用下面的代码添加了spring核心库
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.1.13.RELEASE</version>
</dependency>
</dependencies>
</dependencyManagement>
从技术上讲,您当然可以升级,只需将此依赖项添加到pom文件并更新版本,但我强烈反对这样做,因为这意味着其他依赖项是可传递的。我建议将您的spring boot版本升级到最新的2.2.4版本…如果它解析为5.1.11,则说明您的pom有问题。SpringBoot管理依赖项。换句话说,请发布您的pom.xml。@M.Deinum:添加了pom快照。您应该导入spring引导依赖项,或者按照说明将spring引导定义为父项。删除spring integration的版本标签。如果您在spring boot应用程序中开始这样做,则说明您做得不对,尤其是在spring boot托管依赖项方面。@M.Deinum我同意您的看法。Spring管理的依赖关系我们不应该开始管理,这违背了我们的目的,而且从长远来看更难维护。然而,如果用户出于任何原因决定使用它作为最后手段来规避他的限制,那么有一种方法,这就是我试图通过我的回答传达的内容。@M.Deinum在我的回答中添加了免责声明。感谢您指出这一点。您需要这一点清楚地表明您的pom存在问题。是的,这可能是因为设计pom的人没有包括spring boot starter家长,这有点烦人。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.1.13.RELEASE</version>
</dependency>
</dependencies>
</dependencyManagement>