gpt4 book ai didi

java - 是否有可能拥有一个从封闭项目继承依赖项次要版本的 Maven 库?

转载 作者:行者123 更新时间:2023-11-30 03:06:42 24 4
gpt4 key购买 nike

我想将库构建为依赖于某些 Spring 库(版本 3)的 Maven 项目。

我希望在也使用 Spring 3 的项目中使用它 - 但我不希望版本发生冲突,否则我们将在类路径上同时拥有两个版本的 spring 库。

我想从封闭的项目中获取我的库 pom.xml 的次要版本。

我的问题是:是否有可能拥有一个从封闭项目继承依赖项次要版本的 Maven 库?

最佳答案

我相信您正在担心一些不会发生的事情。同一 Artifact 的不同依赖项之间的版本冲突将通过名为 dependency mediation 的进程来解决。 ,并且 Maven 将不会将同一 Artifact 的多个版本拉入同一类路径。例如,如果您将库设为 your-group:your-library:1.0取决于org.springframework:spring-context:3.2.4.RELEASE ,和我的项目 my-group:my-artifact:1.0取决于 org.springframework:spring-context:3.1.4.RELEASEyour-group:your-library:1.0 ,那么Maven只会拉取版本3.1.4spring-context进入我的构建,两者3.1.43.2.4 。如果你的库也依赖 spring-beans:3.2.4并且 spring-context:3.1.4 之间恰好存在一些不兼容性。和spring-beans:3.2.4 ,那么你可以认为我的项目有责任添加 spring-beans作为依赖项和 explicitly override its version3.1.4my-artifact的 POM。

话虽这么说,您可以通过使用 version ranges某种程度上完成您的问题。 :

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>[3.0.0.RELEASE,3.2.16.RELEASE]</version>
</dependency>

这将有效地告诉取决于您的库的项目,您的库适合任何现有的 3.X spring-context 的版本,但是version ranges have their own set of rules在依赖调解期间,这可能会不友好且晦涩,并且它们也不会在不同的 Artifact 之间链接,因此我建议在您的情况下坚持使用常规版本号。

关于java - 是否有可能拥有一个从封闭项目继承依赖项次要版本的 Maven 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34583701/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com