在maven和maven插件中选择依赖版本
我有一个使用 hsqldb 1.8.0.10 的 Maven 插件。在插件的 pom.xml 中,它是这样声明的:
<dependency>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>1.8.0.10</version>
</dependency>
但是如果我从另一个 Maven 项目运行该插件,并且该项目有较新版本的 hsqldb(例如 1.9.0),我如何配置我的插件他会使用最新版本的hsqldb,而不改变它的pom.xml?
反过来也可以做到这一点吗?如果我的另一个maven项目使用hsqldb 1.7.0(例如),他将使用maven插件本身指定的1.8.0.10版本?
我希望有人能回答我的问题。
亲切的问候,
瓦勒
I have a maven plugin which is using hsqldb 1.8.0.10. In my pom.xml from the plugin, it is declared like this:
<dependency>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>1.8.0.10</version>
</dependency>
But if I run that plugin from another maven project, and that project has a newer version of hsqldb (for instance 1.9.0), how can I configure my plugin that he will use the newest version of hsqldb, without changing it's pom.xml?
And is it possible to do this the other way around as well? If my other maven project uses hsqldb 1.7.0 (for instance), that he will use the 1.8.0.10 version which is specified in the maven plugin itself?
I hope someone can answer my question.
Kind regards,
Walle
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您的主要问题是可能的,但如果插件因任何原因无法与较新的代码一起使用,它可能无法正常工作。
插件可以拥有自己的个人依赖项部分,并将使用标准 Maven 依赖项解析,选择请求的最高版本。所以,你可以这样做,
但我认为反过来是不可能的。
Your main question is possible, but it might not work properly if the plugin doesn't work with the newer code for any reason.
A plugin can have it's own personal dependencies section, and will use standard Maven dependency resolution, choosing the highest version requested. So, you can do
I don't think going the other way around is possible, though.
使用版本的属性占位符,例如 ${hsqldb.version} 然后在不同的项目 pom 中声明要放入其中的版本
use properties place holder for the version, say ${hsqldb.version} then declare in different project pom the version you want to put in it