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

Chu*_*rin 7 ant maven-2

我有maven项目和ant任务.在ant任务中,我想从pom.xml获取版本属性.怎么弄?

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

Ric*_*ler 12

Maven的Ant任务提供了一些目标POM处理

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

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

<echo>The version is ${mypom.version}</echo>
Run Code Online (Sandbox Code Playgroud)

更新:使用任务.您需要安装它们.安装说明

你可以:

  1. 将JAR放在Ant lib目录中,将其包含在CLASSPATH环境变量中
  2. 使用-lib命令行参数将其传递给Ant
  3. 使用typedef声明.这允许您将Ant任务库存储在任何您喜欢的位置,并将其放置在构建文件中.

使用选项2.您可以按如下方式修改项目,以使ant知道maven-ant-tasks模式:

<project ... xmlns:artifact="antlib:org.apache.maven.artifact.ant">
  ...
</project>
Run Code Online (Sandbox Code Playgroud)

使用选项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>
Run Code Online (Sandbox Code Playgroud)


Mat*_*ini 7

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

<xmlproperty file="pom.xml" prefix="pom" />
<echo>The version is ${pom.project.version}</echo>
Run Code Online (Sandbox Code Playgroud)

顺便说一下,Maven Ant任务不再被维护.