2009-09-29 7 views
7

私はmavenプロジェクトとantタスクを持っています。 antタスクでは、私はpom.xmlからバージョンプロパティを取得したいと思います。 どうすれば入手できますか? pom.xmlでAntのMavensのpomからプロジェクトバージョンを取得するには

<artifact:pom id="mypom" file="pom.xml" /> 

<echo>The version is ${mypom.version}</echo> 

アップデート:使用するには<version>2.03.010</version>

答えて

12

Maven Ant tasksはPOMからのバージョンにアクセスするにはPOM processing

のためのいくつかの目標を提供し、あなたは以下を使用することができますタスク。インストールする必要があります。 Install instructions

あなたがいずれかを実行できます。Antのlibディレクトリに

  1. 場所JARを、CLASSPATH環境変数に含める
  2. 使用を-libコマンドラインパラメータを使用したAntにそれを渡しますtypedef宣言。これにより、好きな場所にAntタスクのライブラリを保存し、その場所をビルドファイルに入れることができます。 maven-ANT-タスクスキーマのアリに認識させるために、次のよう

は、オプション2.を使用すると、プロジェクトを変更します。次のようにあなたがのtypedefを指定するオプション3を

<project ... xmlns:artifact="antlib:org.apache.maven.artifact.ant"> 
    ... 
</project> 

(Mavenを仮定すでにアリに含まれているものとのpom.xmlから値を読み取るためだけで何をしたい

<project ... xmlns:artifact="antlib:org.apache.maven.artifact.ant"> 
    ... 
    <path id="maven-ant-tasks.classpath" path="lib/maven-ant-tasks-2.0.10.jar" /> 
    <typedef resource="org/apache/maven/artifact/ant/antlib.xml" 
     uri="antlib:org.apache.maven.artifact.ant" 
     classpathref="maven-ant-tasks.classpath" /> 
    ... 
</project> 
+0

エラーがあります。何を追加するの? build.xml:11:要素 "artifact:pom"の接頭辞 "artifact"はバインドされていません。 – Chuprin

+1

Maven Antタスクは、Antインストールの一部ではありません。あなたはそれらを追加する必要があります。 –

+0

非常に詳細な(そして正しい)回答のために+1 –

5

は、あなたがXmlPropertyタスクを使用することができた場合::-ant-タスクジャーは、プロジェクトのlibディレクトリ)にある

<xmlproperty file="pom.xml" prefix="pom" /> 
<echo>The version is ${pom.project.version}</echo> 

Maven Antタスクは、もはや維持されません。

+0

これは常に機能し、受け入れられた答えよりもずっと簡単です。 –

+0

すばらしいアプローチ。 – jsosnowski

関連する問題