介绍

pom 任务可以以两种方式之一使用,要么读取现有的 pom 文件(通常是 pom.xml),要么定义内存中的 pom 对象。任何一种技术都可用于解决构建依赖关系、构建项目类路径和/或定义项目属性。

读取现有的 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>

这些元素代表:

  • modelVersion - 这是正在使用的 POM 布局的版本,当前为4.0.0
  • groupId - 组 ID 代表您的组织和项目名称,很像 Java 包名称。这必须是普遍独特的。这也成为存储库中的基本目录。
  • artifactId - 工件 ID 表示当前构建单元。它通常等于生成文件的文件名,并且在组内必须是唯一的。
  • version - 您正在构建的工件的版本。
  • 依赖项- 此项目所依赖的工件。

这就是大多数项目所需要的。但是,也可以使用 Maven 中可用的其他字段来描述您的项目,并从您的构建脚本中引用它们。

一旦创建了 pom 文件,它就可以被 pom 任务读取。

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

在 Ant 中定义 POM

如果 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 信息

要将 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 中的依赖项

pom任务可以与依赖项任务结合使用来声明依赖项列表。

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

  <artifact:dependencies filesetId="mydeps" pomRefId="mypom" />

在此示例中,依赖项任务将解析​​ pom 中的依赖项列表并将它们添加到文件集中。

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