MrXiaoXiao

背景:

  之前公司开发组织机构插件项目,其是在Jira平台下进行二次开发,默认的项目部署方式是:clean--》install--》start(restart)。一直存在疑问

 

解析:

第一、生命周期(lifecycle)

  每个maven项目的构建是具有生命周期的,而每个lifecycle包含了多个phase。lifecycle一般具有三种构建形式:default lifecycle、clean lifecycle、site lifecycle

1、默认的构建方式:default lifecycle,其定义了一个完整的项目构建的步骤,如下所示:

<phases>
  <phase>validate</phase>
  <phase>initialize</phase>
  <phase>generate-sources</phase>
  <phase>process-sources</phase>
  <phase>generate-resources</phase>
  <phase>process-resources</phase>
  <phase>compile</phase>
  <phase>process-classes</phase>
  <phase>generate-test-sources</phase>
  <phase>process-test-sources</phase>
  <phase>generate-test-resources</phase>
  <phase>process-test-resources</phase>
  <phase>test-compile</phase>
  <phase>process-test-classes</phase>
  <phase>test</phase>
  <phase>prepare-package</phase>
  <phase>package</phase>
  <phase>pre-integration-test</phase>
  <phase>integration-test</phase>
  <phase>post-integration-test</phase>
  <phase>verify</phase>
  <phase>install</phase>
  <phase>deploy</phase>
</phases>

2、clean lifecycle,主要作用是为了清理项目,以便重新构建部署项目

<phases>
  <phase>pre-clean</phase>
  <phase>clean</phase>
  <phase>post-clean</phase>
</phases>
<default-phases>
  <clean>
    org.apache.maven.plugins:maven-clean-plugin:2.5:clean
  </clean>
</default-phases>

3、site lifecycle,主要作用是建立和发布项目站点

<phases>
  <phase>pre-site</phase>
  <phase>site</phase>
  <phase>post-site</phase>
  <phase>site-deploy</phase>
</phases>
<default-phases>
  <site>
    org.apache.maven.plugins:maven-site-plugin:3.3:site
  </site>
  <site-deploy>
    org.apache.maven.plugins:maven-site-plugin:3.3:deploy
  </site-deploy>
</default-phases>

第二、插件

  Maven将所有项目的构建过程统一抽象成一套生命周期:验证、初始化、生成源代码等,几乎所有项目的构建过程,都可以由这一套生命周期来描述。但maven这个项目构建管理工具是抽象的,它并不能完成任何项目构建的工作,而是映射给其他插件项目来完成这一个一个phase。故当用户有特殊需求的时候,可根据需求定制构建行为,就像开头所说:clean—>install—>start

<phase>validate</phase>
  <phase>initialize</phase>
  <phase>generate-sources</phase>
  <phase>process-sources</phase>
  <phase>generate-resources</phase>
  <phase>process-resources</phase>
  <phase>compile</phase>
  <phase>process-classes</phase>
  <phase>generate-test-sources</phase>
  <phase>process-test-sources</phase>
  <phase>generate-test-resources</phase>
  <phase>process-test-resources</phase>
  <phase>test-compile</phase>
  <phase>process-test-classes</phase>
  <phase>test</phase>
  <phase>prepare-package</phase>
  <phase>package</phase>
  <phase>pre-integration-test</phase>
  <phase>integration-test</phase>
  <phase>post-integration-test</phase>
  <phase>verify</phase>
  <phase>install</phase>
  <phase>deploy</phase>

 

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-05-30
  • 2021-10-26
  • 2022-12-23
  • 2021-05-26
  • 2022-01-17
猜你喜欢
  • 2021-12-04
  • 2021-12-09
  • 2022-12-23
  • 2021-12-10
  • 2021-09-06
  • 2022-12-23
  • 2022-03-08
相关资源
相似解决方案