2009-09-29 10 views
7

나는 프로젝트와 개미 작업을 위해 maven 프로젝트를 가지고있다. 개미 작업에서 나는 pom.xml에서 버전 속성을 얻고 싶다. 어떻게 구할 수 있습니까?개미의 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

에 대한 몇 가지 목표를 제공 pom.xml 파일에서

사용하려면 과제들. 설치해야합니다. 하나 Install instructions

당신은 할 수 있습니다

  1. 놓습니다 개미 lib 디렉토리의 JAR이 변수 CLASSPATH 환경에 포함
  2. 는 -lib 명령 줄 매개 변수
  3. 사용하여 개미로에 전달 typedef 선언. 이를 통해 원하는 곳에 Ant Tasks 라이브러리를 저장하고 위치를 빌드 파일에 저장할 수 있습니다. 받는다는 - 개미 - 작업 스키마의 개미을 알리기 위해 다음과 같이

이 옵션 2를 사용하면 프로젝트를 수정하여 다음과 같이 당신은 타입 정의를 지정 옵션 3으로

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

(받는다는 가정 이미 개미에 포함 된 것과 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> 

메이븐 개미 작업은 더 이상 방법으로 유지되지 않습니다.

+0

이것은 항상 작동하며 받아 들인 대답보다 훨씬 간단합니다. –

+0

위대한 접근 방식. – jsosnowski