Выбор версии зависимости в плагине maven и maven - PullRequest
0 голосов
/ 17 мая 2011

У меня есть плагин maven, который использует hsqldb 1.8.0.10. В моем 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 (например), что он будет использовать версию 1.8.0.10, которая указана в самом плагине maven?

Надеюсь, кто-нибудь ответит на мой вопрос.

С уважением,

1012 * Walle *

Ответы [ 2 ]

1 голос
/ 17 мая 2011

Ваш главный вопрос возможен, но он может не работать должным образом, если плагин по какой-либо причине не работает с более новым кодом.

Плагин может иметь собственный раздел личных зависимостей и будет использовать стандартное разрешение зависимостей 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>

Хотя я не думаю, что можно пойти другим путем.

1 голос
/ 17 мая 2011

используйте заполнитель свойств для версии, скажем $ {hsqldb.version}, затем объявите в другом проекте версию, которую вы хотите добавить в нее

...