「Maven」生命周期与插件



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


文章作者: Hyggge
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Hyggge !
  目录