Maven build lifecycle

时间:2023-08-28 20:30:32

Clean Lifecycle

运行mvn clean执行clean生命周期,包含三个生命周期阶段:

  • pre-clean
  • clean
  • post-clean

clean:clean会删除一次构建后的输出,默认删除_${basedir}/target/_目录(如果你没有自定义输出目录)。

执行clean阶段的时候,maven可以执行任何绑定到pre-clean阶段的_goal_(目标)。

例如:你想在pre-clean阶段时触发antrun:run_goal_来输出一个通知,或者想在构陷目录删除时,打包一下。

**Triggering a Goal on pre-clean. **

<project>
...
<build>
<plugins>... <plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>file-exists</id>
<phase>pre-clean</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>hello world</echo>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

我们还可以自定义clean插件的删除目录(即除了默认的目录,再删除别的目录)。可以配置fileSet配置项,该配置支持ant的通配符。

**Customizing Behavior of the Clean Plugin. **

 <build>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<configuration>
<filesets>
<fileset>
<directory>target-other</directory>
<includes>
<include>*.class</include>
</includes>
</fileset>
</filesets>
</configuration>
</plugin>
</plugins>
</build>

Default Lifecycle

maven的默认生命周期,有如下阶段:

Lifecycle Phase Description
validate 验证项目的正确性和完成该构建的必要信息
generate-sources 生成包含在编译之中的源代码
process-sources 处理源码,如过滤某些值
generate-resources 生成资源文件,这些文件会包含到打包中
process-resources 将资源文件复制到目标目录,并处理,准备打包
compile 编译源码
process-classes 对生成的类文件后处理,如字节码增强
generate-test-sources 生成测试代码
process-test-sources 处理测试代码
generate-test-resources 生成测试用的资源文件
process-test-resources 复制资源文件到测试目录
test-compile 编译测试代码
test 测试
prepare-package 打包前的准备工作
package 打包,如JAR,WAR等
pre-integration-test 集成测试准备
integration-test 集成测试
post-integration-test 集成测试后的工作
verify 检查验证生成的java包
install 安装到本地仓库
deploy 部署到目标地址

Site Lifecycle

暂时用不到,不整理