Как реализовать переменные версии зависимостей в Maven3, используя _profiles_? - PullRequest
0 голосов
/ 26 января 2011

Нам нужно построить проект с разными версиями deps (в этом примере Postgres 8 и Postgres 9).Также у наших разработчиков есть разные версии БД на своих компьютерах.

Я пытался сделать что-то вроде этого:

    <profile>
        <id>postgres9</id>
        <properties>
            <postgres.driver.version>
                9.0-801
            </postgres.driver.version>
        </properties>
    </profile>

    <profile>
        <id>postgres8</id>
        <properties>
            <postgres.driver.version>
                8.3-603
            </postgres.driver.version>
        </properties>
    </profile>

    <dependency>
        <groupId>postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>${postgres.driver.version}</version>
    </dependency>

    <properties>
        <postgres.driver.version>8.3-603</postgres.driver.version>
    </properties>



    mvn clean test -Ppostgres9

Но это не сработало.Переменная профиля вообще не переопределяет переменную pom.Кроме того, я не могу добиться этого даже с ~ / .m2 / settings.xml.

Кто-нибудь знает, как это сделать?Спасибо.

Ответы [ 2 ]

1 голос
/ 17 февраля 2012

У меня была такая же проблема.Перемещение версии (со свойством) из зависимости в зависимость. Управление в родительском ПОМ решило ее для меня:

old: pom.xml:

<dependencies>
    <dependency>
        <groupId>postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>${postgres.driver.version}</version>
    </dependency>
</dependencies>

new: pom.xml

<dependency>
    <groupId>postgresql</groupId>
    <artifactId>postgresql</artifactId>
</dependency>

родительский pom:

  <dependencyManagement>
    <dependencies>
    <dependency>
        <groupId>postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>${postgres.driver.version}</version>
    </dependency>
    </dependencies>
  </dependencyManagement>
1 голос
/ 16 февраля 2011

Мы уже давно пытаемся делать подобные вещи в наших проектах.Единственный способ, который последовательно работает, - передать -Dpostgres.driver.version = 8.3-603.По какой-то причине переменные не интерполируются до вычисления зависимостей.

Как ни странно, похоже, что он работает на некоторых моих проектов под Maven 3.0.2.Сейчас я пытаюсь глубже исследовать.

...