pom 任务可以以两种方式之一使用,要么读取现有的 pom 文件(通常是 pom.xml),要么定义内存中的 pom 对象。任何一种技术都可用于解决构建依赖关系、构建项目类路径和/或定义项目属性。
这里提供了一个示例 pom:
<project> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.project</groupId> <artifactId>project-model</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.2</version> <scope>test</scope> </dependency> <dependency> <groupId>org.codehaus.modello</groupId> <artifactId>modello-core</artifactId> <version>1.0-alpha-2-SNAPSHOT</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.4</version> <scope>provided</scope> </dependency> </dependencies> </project>
这些元素代表:
这就是大多数项目所需要的。但是,也可以使用 Maven 中可用的其他字段来描述您的项目,并从您的构建脚本中引用它们。
一旦创建了 pom 文件,它就可以被 pom 任务读取。
<artifact:pom id="mypom" file="pom.xml" />
如果 POM 文件不可用,也可以使用 ant 任务来定义内存中的 pom。
<artifact:pom id="mypom" groupId="org.acme" artifactId="project1" version="1.0"> <dependency groupId="junit" artifactId="junit" version="4.1"/> <dependency groupId="org.codehaus.plexus" artifactId="plexus-utils" version="1.5.5"/> <license name="apache" url="http://www.apache.org"/> </artifact:pom>
要将 POM 的一部分作为 Ant 属性访问,您必须将其定义为引用。例如,要从 POM 访问版本,您可以使用以下命令:
<artifact:pom id="mypom" file="pom.xml" /> <echo>版本是${mypom.version}</echo>
您还可以访问 POM 的嵌套部分。例如,您可以使用. 分隔器。
<artifact:pom id="mypom" file="pom.xml" /> <echo>构建目录是${mypom.build.directory}</echo>
有关 POM 中可用元素的更多信息,请参阅描述符参考。
pom任务可以与依赖项任务结合使用来声明依赖项列表。
<artifact:pom id="mypom" file="pom.xml" /> <artifact:dependencies filesetId="mydeps" pomRefId="mypom" />
在此示例中,依赖项任务将解析 pom 中的依赖项列表并将它们添加到文件集中。
可以使用嵌套的配置文件元素激活或停用 POM 配置文件。例如激活一个名为my-profile 的配置文件。
<artifact:pom id="maven.project" file="pom.xml"> <profile id="my-profile"/> </artifact:pom>
这也可用于停用默认处于活动状态的 POM 配置文件。
<artifact:pom id="maven.project" file="pom.xml"> <profile id="my-default-profile" active="false"/> </artifact:pom>