プラグインのantの実行にmavenのプロパティを渡すことができません。私はすでにMaven antrun: pass maven properties to antを読みましたが、これは解決しませんでした問題。私は<code>maven-antrun-plugin.</code></p> <p>を使用してのMavenで実行されるスクリプトにカスタムMavenのプロパティ(バージョン) を渡して問題を抱えている
私の問題と上記のSOの質問に記載されているものとの間には1つの違いがあります。
私の場合、maven-antrun-plugin
は親プロジェクトの子として実行されます。プロパティはすべてのモジュールのグローバルプロパティとして定義されます。
maven-antrun-pluginは、プロジェクトの1つのモジュールです。
親ポンポンスニペットは次のようになります。
<project ...>
<!-- Parent -->
<modelVersion>4.0.0</modelVersion>
<groupId>xxx</groupId>
<artifactId>xxx</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
<my.project.version>0.0.3-SNAPSHOT</my.project.version>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<java.version>1.7</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
アリ実行ポンポンは次のようになります。プロパティがtarget.version
<project>
<!-- Module -->
<parent>
<groupId>xxx</groupId>
<artifactId>xxx</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>ant-magic</id>
<phase>prepare-package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<property name="compile_classpath"
refid="maven.compile.classpath"/>
<property name="outputDir"
value="${project.build.outputDirectory}"/>
<property name="sourceDir"
value="${project.build.sourceDirectory}"/>
<property name="compile_classpath" refid="maven.compile.classpath"/>
<property name="target-version" refid="${my.project.version}"/>
<echo message="Passed target version to ant build script: ${target-version}"/>
<ant antfile="${basedir}/src/main/ant/create-dist.xml"
target="deploy-ea"/>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
命名され、次のMavenのビルドエラーがantrun-のmaven-pluginのが含まれている子モジュールのビルドのexcution中に発生します。
`An Ant BuildException has occured: Reference 0.0.3-SNAPSHOT` not found
これはmavenプロパティの値なので興味があります。
また、私はちょうど次のエラーにつながる私の場合
<property name="target-version" refid="my.project.version"/>
で
refid attribute
の引数として単純なプロパティ名を使用しようとしました:
An Ant BuildException has occured: Reference my.project.version not found
antスクリプトは次のようにこのプロパティを使用します
<property name="myproject-jar" value="mymodulename-${target-version}.jar"/>
設定に間違いがあるか、プロパティが親pom内で定義されているという問題ですか。そのためにライフサイクルの問題が発生する可能性はありますか?
まず...あなたはのmaven-antrun-を使用している理由をさらに疑問がありますプラグイン? – khmarbaise
@khmarbaiseまず、問題の関連部分だけを表示したかったので、この場合はpomスニペットです。私はネイティブのC + +、JNIを構築する必要があるので、第二に私はantのプラグインを使用しています。これは私にとっては最も実用的な方法であるようです。おそらく、あなたは私の素晴らしい機能を活用して適切なJavaクライアントに関するmavenを使用して、C + +プロジェクトを構築する素晴らしいソリューションを提供することができます。 – Diversity
https://github.com/maven-nar/nar-maven-pluginをご覧になることをお勧めします。 – khmarbaise