我在Maven中创建一个依赖于第三方库的Java库。
如果任何消费者应用程序已经使用该第三方库,我希望他们的构建使用他们的。但是,如果它们还没有它,我希望它们使用我在存档中打包的那个。
是否有Maven的方法可以吃你的蛋糕并吃掉它,这样我就可以告诉消费者应用程序如果有的话可以使用它们,否则使用我的?
答案 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