Maven项目构建的生命周期
Maven的生命周期就是为了对所有的构建过程进行抽象和统一,这个生命周期包含了项目的清理,初始化,编译,测试,打包,集成测试,验证,部署和站点生成等几乎所有构建步骤,由相互独立三套生命周期组成——
- clean:清理项目
- default:构建项目
- site:构建项目站点
当执行某一独立的生命周期的一个阶段时,实际上在该阶段之间的、和该阶段在同一生命周期的其他阶段也会被执行。
clean生命周期
clean生命周期包含三个阶段:
- pre-clean:执行一些清理前需要完成的工作;
- clean:清理上一次构建生成的文件;
- post-clean:执行一些清理后需要完成的工作;
default生命周期
default
生命周期定义了真正构建项目需要执行的所有步骤,它是所有生命周期中最核心的部分
- validate(校验)
- initializer(初始化)
- generate-sources(生成源代码)
- process-sources(处理源代码)
- generate-resources(生成资源文件)
- process-resources(处理资源文件)
- compile(编译项目的源码,一般来说编译的是src/main/java目录下的java文件至项目输出的主classpath目录中)
- process-classes(处理类文件)
- generate-test-sources(生成测试源代码)
- process-test-sources(处理测试源代码)
- generate-test-resources(生成测试资源文件)
- process-test-resources(处理测试资源文件)
- test-compile(编译测试源代码到目标目录)
- process-test-classes(处理测试类文件)
- test(测试)
- prepare-package(准备打包)
- package(打包, 把编译好的代码打包成可发布的格式,如
JAR,WAR,EAR)
- pre-integration-test(集成测试前)
- integration-test(集成测试)
- post-integration-test(集成测试后)
- verify(验证)
- install(安装项目包本地仓库,这样项目包可以做其他本地项目的依赖)
- deploy(部署,将最终的包复制到远程的仓库,以让其它开发人员与项目共享。)
site生命周期
site
生命周期的目的是建立和发布项目站点,maven能够基于pom文件所包含的项目信息,自动生成一个友好站点,方便团队交流和发布项目信息。
- pre-site:执行一些需要在生成站点文档之后完成的工作
- site:生成项目的站点文档
- post-site:执行一些需要在生成站点文档之后完成的工作,并为部署作准备
- site-deploy:将生成的站点文档部署到特定服务器上
插件
插件与生命周期内的阶段相绑定,到执行对应的生命周期时执行对应的插件功能(每个生命周期的行为靠插件实现)。在默认情况下,maven在各个生命周期上绑定有预设的功能,我们也可以使用插件自定义其他的功能,使用插件需要在pom.xml
中做以下配置
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
<!-- 执行行为的配置 -->
<executions>
<execution>
<!-- 执行的工作/目标 -->
<goals>
<goal>jar</goal>
</goals>
<!-- 执行的生命周期 -->
<phase>generate-test-resources</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
查找插件的官网为:https://maven.apache.org/plugins/index.html