Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get project version from Mavens's pom in Ant

Tags:

maven-2

ant

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>

like image 671
Chuprin Avatar asked Sep 29 '09 06:09

Chuprin


2 Answers

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>
like image 145
Rich Seller Avatar answered Nov 09 '22 22:11

Rich Seller


If what you want is just to read values from pom.xml with what's included in ant already, you can use the XmlProperty task:

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

The Maven Ant Tasks are no longer maintained, by the way.

like image 44
Matteo Steccolini Avatar answered Nov 09 '22 21:11

Matteo Steccolini