如何从Ant中的Mavens pom获取项目版本

时间:2009-09-29 06:35:37

标签: maven-2 ant

我有maven项目和ant任务。 在ant任务中,我想从pom.xml获取版本属性。 如何获得它?

在pom.xml中:<version>2.03.010</version>

2 个答案:

答案 0 :(得分:12)

Maven Ant tasksPOM processing

提供了一些目标

要从POM访问该版本,您可以使用以下内容:

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

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

更新:使用任务。您需要安装它们。 Install instructions

你可以:

  1. 将JAR放在Ant lib目录中,将其包含在CLASSPATH环境变量
  2. 使用-lib命令行参数
  3. 将其传递给Ant
  4. 使用typedef声明。这允许您将Ant任务库存储在任何您喜欢的位置,并将其放置在构建文件中。
  5. 使用选项2.您可以按如下方式修改项目,以使ant知道maven-ant-tasks模式:

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

    使用选项3.您可以按如下方式指定typedef(假设maven-ant-tasks jar位于项目的lib目录中):

    <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>
    

答案 1 :(得分:7)

如果你想要的只是从pom.xml中读取已包含在ant中的内容的值,你可以使用XmlProperty任务:

x <- matrix()
dim(x)
## [1] 1 1
x
##      [,1]
## [1,]   NA

顺便说一句,不再维护Maven Ant任务。