5

私のプロジェクトでは、maven 依存関係があります。
ちなみにそれは:

<dependency>
   <groupId>org.mule.modules</groupId>
   <artifactId>mule-module-activiti</artifactId>
   <version>3.2.0</version>
</dependency>

この依存関係 POM には、使用されているが定義されていないプロパティがあります -${activiti.version}

このプロパティを設定する方法を見つけた唯一の方法は、次のようにコマンドラインで指定することですmvn -Dactiviti.version=5.10

プロジェクトの POM でこのプロパティを指定する方法はありますか?
<properties><activiti.version>5.10</activiti.version></properties>動作しません。

編集:

依存関係のある新しいmavenプロジェクトを作成すると、私が解決しようとしている状況を再現できます:

<dependency>
   <groupId>org.mule.modules</groupId>
   <artifactId>mule-module-activiti</artifactId>
   <version>3.2.0</version>
</dependency>

必要なリポジトリを提供します。

  <repositories>
        <repository>
            <id>muleforge-repo</id>
            <name>MuleForge Repository</name>
            <url>http://repository.muleforge.org/release</url>
            <layout>default</layout>
        </repository>

        <repository>
            <id>codehaus-repo</id>
            <name>Codehaus Repository</name>
            <url>http://dist.codehaus.org/mule/dependencies/maven2</url>
            <layout>default</layout>
        </repository>
        <repository>
            <id>activiti</id>
            <name>Activiti</name>
            <url>https://maven.alfresco.com/nexus/content/groups/public/</url>
        </repository>
    </repositories>

編集2:

これはorg.mule.modules:mule-module-activiti:3.2.0のPOMで、私のプロジェクトが依存するライブラリです。この pom の中で、彼らは expression を使用します。しかし、彼らはこの式に値を設定しません。(のようなものはありません)${activiti.version}<properties><activiti.version>5.10</activiti.version></properties>

問題は、 pomからこの式の値を設定するにはどうすればよいかということです。

4

3 に答える 3

7

OK、最終的に、数日間の検索と実験の後、問題の解決策を見つけました.

コマンド ラインで maven のプロパティを指定する必要がある場合 (システム プロパティについて説明しますが、これはmaven プロパティとは少し異なります)、プラグインを使用してこれらのプロパティを pom または別のプロパティ ファイルで指定することもできます。

注: システム プロパティは、依存関係の Maven プロパティをオーバーライドするために使用できます。

このような:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>properties-maven-plugin</artifactId>
    <version>1.0-alpha-2</version>
    <executions>
        <execution>
            <goals>
                <goal>set-system-properties</goal>
            </goals>
            <configuration>
                <properties>
                    <property>
                        <name>activiti.version</name>
                        <value>5.10</value>
                    </property>
                </properties>
            </configuration>
        </execution>
    </executions>
</plugin>

誰かの役に立てば幸いです。

また、明らかにわかりにくかった私の不器用な質問で申し訳ありません。

于 2012-08-30T11:21:08.000 に答える
4

プロパティを使用してバージョンを定義できます。

<properties>
  <module-version>3.2.0</module-version>
</properties>
..
<dependency>
   <groupId>org.mule.modules</groupId>
   <artifactId>mule-module-activiti</artifactId>
   <version>${module-version}</version>
</dependency>

なぜそれがうまくいかないですか?

コマンドラインのプロパティを介してアーティファクトのバージョンを定義しないでください。将来これを再現することはできず、これが機能するかどうかは疑問です。

于 2012-08-29T10:01:25.290 に答える
0

外部と通信するためのプロキシ設定がないことを確認してください。私はあなたの設定を試してみましたが、うまくいきました。最新の Maven 3 リリースを使用しています。

于 2012-08-29T12:39:37.223 に答える