0
点赞
收藏
分享

微信扫一扫

Maven | 11.Maven项目的生命周期与插件

mm_tang 2022-02-11 阅读 77

文章目录

参考视频

14-生命周期与插件-生命周期与插件

1.项目构建生命周期

Maven项目构建生命周期有以下三个:

  • clean:清理工作(clean)
  • default:核心工作,如编译(compile)、测试编译(test-compile)、测试(test)、打包(package)、部署(deploy)等
  • site:产生报告、发布站点等

而这三个生命周期中,又分别包含多个阶段:

image-20220211013333621

image-20220211013406201

image-20220211013423538

当一个生命周期的所有阶段被完整执行,那么就可以认为该生命周期已执行完毕。

需要注意的是,阶段的执行并非是独立的,假设需要执行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>

image-20220211021516038

<phase>的值与上面提到的生命周期阶段名字对应,定义应当在哪个阶段插入本插件,即定义在哪个阶段使这个插件执行任务。

上图表示,当程序执行到"package"这个生命周期阶段时,在让maven预设插件执行任务的同时,还会额外让这个插件执行任务(生成源码包)

2.3.效果展示

由于<phase>的值是package,即当执行到package阶段时会让本插件执行任务。因此可推测,在执行下方这些生命周期阶段时:

  • compile:不执行

  • test-compile:不执行

  • test::不执行

  • package:执行

  • install:执行

image-20220211022501317

image-20220211022616072

image-20220211022734182

举报

相关推荐

0 条评论