文章目录
参考视频
14-生命周期与插件-生命周期与插件
1.项目构建生命周期
Maven项目构建生命周期有以下三个:
- clean:清理工作(
clean
) - default:核心工作,如编译(
compile
)、测试编译(test-compile
)、测试(test
)、打包(package
)、部署(deploy
)等 - site:产生报告、发布站点等
而这三个生命周期中,又分别包含多个阶段:
当一个生命周期的所有阶段被完整执行,那么就可以认为该生命周期已执行完毕。
需要注意的是,阶段的执行并非是独立的,假设需要执行test,则test之前的所有阶段都会被依次执行。
这也是为什么在执行mvn package
命令时,Maven会先编译、测试编译、测试,再进行打包。
2.插件
2.1.插件概述
插件与生命周期的阶段绑定,默认配置下,每个阶段绑定着一个插件。
而如果希望在某个阶段中额外增加新的功能,则可以为某个阶段额外绑定一个插件
插件的下载地址为Maven插件官方下载地址
2.2.插件的使用
以maven-source-plugin这个插件为例,如果希望添加这个插件,需要在pom.xml的<build> - <plugins>中添加并配置<plugin>
<build>
<plugins>
<plugin>
<!-- 插件基本信息 -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<goals>
<!-- 本插件的参数之一,指明对什么内容打包 -->
<!-- jar表示对主程序打包 -->
<goal>jar</goal>
</goals>
<!-- 定义在什么阶段上插入本插件 -->
<phase>package</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
<phase>的值与上面提到的生命周期阶段名字对应,定义应当在哪个阶段插入本插件,即定义在哪个阶段使这个插件执行任务。
上图表示,当程序执行到"package"这个生命周期阶段时,在让maven预设插件执行任务的同时,还会额外让这个插件执行任务(生成源码包)
2.3.效果展示
由于<phase>的值是package,即当执行到package阶段时会让本插件执行任务。因此可推测,在执行下方这些生命周期阶段时:
-
compile:不执行
-
test-compile:不执行
-
test::不执行
-
package:执行
-
install:执行