0

異なるバージョンの deps でプロジェクトをビルドする必要があります (この例では、Postgres 8 と Postgres 9)。また、私たちの開発者は、コンピューターにさまざまなバージョンの DB を持っています。

私はこのようなことをしようとしています:

    <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 でも実現できません。

誰もこれを行う方法を知っていますか? ありがとう。

4

2 に答える 2

1

私たちはかなり長い間、私たちのプロジェクトで同様のことをしようとしてきました。一貫して機能する唯一の方法は、-Dpostgres.driver.version=8.3-603 を渡すことです。何らかの理由で、依存関係が計算される前に変数が補間されません。

奇妙なことに、Maven 3.0.2 の下で私のプロジェクトのいくつかで動作するようです。今、もっと深く調べようとしています。

于 2011-02-16T14:58:18.183 に答える
1

私も同じ問題を抱えていました。バージョンを(プロパティを使用して)依存関係から親pomのdependencyManagementに移動すると、解決しました:

古い: pom.xml:

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

新規: pom.xml

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

親ポン:

  <dependencyManagement>
    <dependencies>
    <dependency>
        <groupId>postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>${postgres.driver.version}</version>
    </dependency>
    </dependencies>
  </dependencyManagement>
于 2012-02-17T09:49:04.637 に答える