在maven和maven插件中选择依赖版本

时间:2011-05-17 11:29:44

标签: maven dependencies version maven-plugin pom.xml

我有一个使用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

2 个答案:

答案 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>
但是,我不认为反过来是可能的。