tags:

views:

648

answers:

1

Hello. I have maven project and ant task for it. In ant task i want to get version property from pom.xml. How to get it?

In pom.xml: <version>2.03.010</version>

+3  A: 

The Maven Ant tasks provide some goals for POM processing

To access the version from a POM, you can use the following:

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

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

Update: To use the tasks. You will need to install them. Install instructions

You can either:

  1. Place the JAR in your Ant lib directory, include it in the CLASSPATH environment variable
  2. Pass it in to Ant using the -lib command line parameter
  3. Use a typedef declaration. This allows you to store the Ant Tasks' library anywhere you like and put it's location in the build file.

With option 2. you modify your project as follows to make ant aware of the maven-ant-tasks schema:

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

With option 3. You specify the typedef as follows (assuming the maven-ant-tasks jar is in the lib directory of your project):

<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>
Rich Seller
I have an error. What i nedd to add?build.xml:11: The prefix "artifact" for element "artifact:pom" is not bound.
Chupa
The Maven ant tasks are not part of the Ant install. You need to add them.
Rich Seller
+1 for the very detailed (and right) answer
Pascal Thivent
@Pascal, thanks
Rich Seller