我有一个使用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版本?
我希望有人能回答我的问题。
亲切的问候,
WALLE
答案 0 :(得分:1)
使用版本的属性占位符,比如$ {hsqldb.version}然后在不同的项目pom中声明要放入其中的版本
答案 1 :(得分:1)
您的主要问题是可能的,但如果插件由于任何原因无法使用较新的代码,则可能无法正常运行。
插件可以拥有自己的个人依赖项部分,并将使用标准的Maven依赖项解析,选择所需的最高版本。所以,你可以做到
<plugin>
<groupId>some.group.id</groupId>
<artifactId>some.artifact.id</artifactId>
<version>someversion</version>
<dependencies>
<dependency>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>1.9.0</version>
</dependency>
</dependencies>
</plugin>
但是,我不认为反过来是可能的。