我如何指示构建使用其依赖版本(如果有),否则使用我的工件中的版本

时间:2016-06-23 21:33:16

标签: maven

我在Maven中创建一个依赖于第三方库的Java库。

如果任何消费者应用程序已经使用该第三方库,我希望他们的构建使用他们的。但是,如果它们还没有它,我希望它们使用我在存档中打包的那个。

是否有Maven的方法可以吃你的蛋糕并吃掉它,这样我就可以告诉消费者应用程序如果有的话可以使用它们,否则使用我的?

1 个答案:

答案 0 :(得分:1)

当发现工件的多个版本时,maven将尝试选择版本。它使用依赖树中最接近的定义。

https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html http://techidiocy.com/maven-dependency-version-conflict-problem-and-resolution/

这意味着如果使用您的库的项目指定了将使用的其他版本。如果公共依赖项由传递依赖项指定,则将使用最接近树根的版本。

您还可以使用版本范围指定适用于您的库的许多版本。 https://docs.oracle.com/middleware/1212/core/MAVEN/maven_version.htm#MAVEN402