2009-09-29 16 views

Odpowiedz

12

Maven Ant tasks zapewnić pewne cele dla POM processing

Aby przejść do wersji z POM, można użyć następujący:

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

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

Update: Aby korzystać zadania. Będziesz musiał je zainstalować. Install instructions

można:

  1. Umieść JAR w katalogu lib Ant, umieścić go w środowisku CLASSPATH zmiennej
  2. Pass it by Ant przy użyciu parametru -lib wiersza poleceń
  3. Używaj deklaracja typedef. Pozwala to na przechowywanie biblioteki zadań Ant w dowolnym miejscu i umieszczenie jej w pliku kompilacji.

Z opcji 2. zmodyfikować swój projekt w następujący sposób, aby mrówka świadomy schematu Maven-ANT-zadania:

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

Z opcją 3. podasz typedef następująco (przy założeniu, że Maven -ant-zadania słoik znajduje się w lib katalogu projektu):

<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

Mam błąd. Co mam dodać? build.xml: 11: Przedrostek "artefakt" dla elementu "artefakt: pom" nie jest powiązany. – Chuprin

+1

Zadania Maven mrówki nie są częścią instalacji Ant. Musisz je dodać. –

+0

+1 za bardzo szczegółową (i prawą) odpowiedź –

5

Jeśli to, co chcesz jest tylko do odczytu wartości z pom.xml z tym, co jest zawarte w mrówce już, można użyć zadania XmlProperty:

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

Zadania Mrówki Maven nie są już utrzymywane, przy okazji.

+0

To zawsze działa i jest o wiele prostsze niż zaakceptowana odpowiedź. –

+0

Świetne podejście. – jsosnowski

Powiązane problemy