Maven 构建生命周期

构建生命周期是什么?

构建生命周期阶段的目标是执行顺序是一个良好定义的序列。
这里使用一个例子,一个典型的 Maven 构建生命周期是由下列顺序的阶段:

阶段 处理 描述
准备资源 资源复制 资源复制可以进行定制
编译 执行编译 源代码编译在此阶段完成
包装 打包 创建JAR/WAR包如在 pom.xml 中定义提及的包
安装 安装 这一阶段在本地/远程Maven仓库安装程序包

可用于注册必须执行一个特定的阶段之前或之后的目标,有之前处理和之后阶段。
当 Maven 开始建立一个项目,它通过定义序列阶段步骤和执行注册的每个阶段的目标。 Maven有以下三种标准的生命周期:

  • clean

  • default(或 build)

  • site

目标代表一个特定的任务,它有助于项目的建设和管理。可以被绑定到零个或多个生成阶段。一个没有绑定到任何构建阶段的目标,它的构建生命周期可以直接调用执行
执行的顺序取决于目标和构建阶段折调用顺序。例如,考虑下面的命令。清理和打包(mvn clean)参数的构建阶段,而 dependency:copy-dependencies package 是一个目标。

mvn clean dependency:copy-dependencies package

在这里,清洁的阶段,将首先执行,然后是依赖关系:复制依赖性的目标将被执行,并终于将执行包阶段。

清洁生命周期

当我们执行命令 mvn clean 命令后,Maven 调用清洁的生命周期由以下几个阶段组成:

  • pre-clean

  • clean

  • post-clean

Maven 清洁目标(clean:clean)被绑定清洁干净的生命周期阶段。clean:clean 目标删除 build 目录下的构建输出。因此,当 mvn clean 命令执行时,Maven会删除编译目录。

目标清洁生命周期在上述阶段,我们可以自定义此行为。
在下面的示例中,我们将附加 maven-antrun-plugin:run 对目标进行预清洁,清洁和清洁后这三个阶段。这将使我们能够调用的信息显示清理生命周期的各个阶段。
现在来创建了一个 pom.xml 文件在 C:MVN 项目文件夹中,具体内容如下:

<project xmlns="http://maven.apache.org/POM/4.0.0"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0   http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.companyname.projectgroup</groupId><artifactId>project</artifactId><version>1.0</version><build><plugins>   <plugin>   <groupId>org.apache.maven.plugins</groupId>   <artifactId>maven-antrun-plugin</artifactId>   <version>1.1</version>   <executions>      <execution>         <id>id.pre-clean</id>         <phase>pre-clean</phase>         <goals>            <goal>run</goal>         </goals>         <configuration>            <tasks>               <echo>pre-clean phase</echo>            </tasks>         </configuration>      </execution>      <execution>         <id>id.clean</id>         <phase>clean</phase>         <goals>          <goal>run</goal>         </goals>         <configuration>            <tasks>               <echo>clean phase</echo>            </tasks>         </configuration>      </execution>      <execution>         <id>id.post-clean</id>         <phase>post-clean</phase>         <goals>            <goal>run</goal>         </goals>         <configuration>            <tasks>               <echo>post-clean phase</echo>            </tasks>         </configuration>      </execution>   </executions>   </plugin></plugins></build></project>

现在,打开命令控制台,到该文件夹包含  pom.xml 并执行以下 mvn 命令。