1. 什么是生命周期?
    1. 构建生命周期是一组阶段的序列(sequence of phase),每个阶段定义了目标被执行的顺序,这里的阶段就是生命周期的一部分。
  2. 一个典型的Maven生命周期由一些几个阶段的序列组成
    1. 当需要在某个特定的阶段之前或者是之后执行目标的时候,需要使用pre和post来定义这个目标。
  3. 当Maven开始构建工程,会按照所定义的阶段序列的顺序执行每个阶段注册的目标,Maven有一下三个标准的生命周期:
    1. clean
    2. default(or build)
    3. sit
  4. 目标
    1. 目标是一个特定的、对构建和管理工程有帮助的任务,他可能绑定了0或者多个构建阶段,没有绑定任何构建阶段的目标可以在构建生命周期之外被直接调用执行。
    2. 执行的顺序依赖于目标和构建阶段被调用的顺序,
  5. 考虑下面的命令,clean和package参数是构建阶段,而dependency:copy-dependencies是一个目标。
  6. mvn clean dependency:copy-dependencies package
    1. 这里的clean阶段将会被首先执行,然后dependency:copy-dependencies目标会被执行,最终package阶段被执行。


  1. Clean生命周期
    1. 当我们执行 mvn post-clean命令的时候,Maven调用clean生命周期,它包含一下阶段组成
      1. pre-clean
      2. clean
      3. post-clean
    2. Maven的clean目标(clean:clean)绑定到了clean生命周期的clean阶段,它的clean:clean目标通过删除构建目录删除了构建输出,,所以当mvn clean 命令执行的时候,Maven删除了构建目录。
    3. 我们可以通过在上面的clean生命周期的任何阶段定义目标来修改这部分的操作
    4. 在下面的例子中,我们将maven-antrun-plugin:run目标添加到pre-clean、clean、和post-clean阶段中,这样我们可以在clean生命周期的各个阶段中显示文本信息
      1. <project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
        http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.companyname.projectgroup</groupId>
        <artifactId>project</artifactId>
        <version>1.0</version>
        <build>
        <plugins>
        <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.1</version>
        <executions>
        <execution>
        <id>id.pre-clean</id>
        <phase>pre-clean</phase>
        <goals>
        <goal>run</goal>
        </goals>
        <configuration>
        <tasks>
        <echo>pre-clean phase</echo>
        </tasks>
        </configuration>
        </execution>
        <execution>
        <id>id.clean</id>
        <phase>clean</phase>
        <goals>
        <goal>run</goal>
        </goals>
        <configuration>
        <tasks>
        <echo>clean phase</echo>
        </tasks>
        </configuration>
        </execution>
        <execution>
        <id>id.post-clean</id>
        <phase>post-clean</phase>
        <goals>
        <goal>run</goal>
        </goals>
        <configuration>
        <tasks>
        <echo>post-clean phase</echo>
        </tasks>
        </configuration>
        </execution>
        </executions>
        </plugin>
        </plugins>
        </build>
        </project>
      2. 现在 打开命令行窗口,跳转到pom.xml文件所在的目录,执行下面的mvn命令
        1. mvn post-clean
        2. Maven将会开始处理并显示clean生命周期的所有阶段
      3. 可以尝试修改mvn clean命令,来显示pre-clean和clean,而在post-clean阶段不执行任何的操作
  2. Default(or build)生命周期
    1. 这是maven的主要生命周期,被用于构建应用,主要包括以下23个阶段
    2. 与Maven生命周期相关的重要概念需要说明
    3. 当一个阶段通过Maven的命令调用的时候,例如:mvn compile,只有该阶段之前以及包括该阶段在内的所有阶段会被执行
    4. 不同的maven目标将会根据打包的类型(JAR/WAR/EAR),被绑定到不同的Maven生命周期
    5. 在下面的例子当中,我们将maven-antrun-plugin:run目标添加到Build生命周期的一部分阶段中,这样我们可以显示生命周期的文本信息
    6. 例子
      1. <project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
        http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.companyname.projectgroup</groupId>
        <artifactId>project</artifactId>
        <version>1.0</version>
        <build>
        <plugins>
        <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.1</version>
        <executions>
        <execution>
        <id>id.validate</id>
        <phase>validate</phase>
        <goals>
        <goal>run</goal>
        </goals>
        <configuration>
        <tasks>
        <echo>validate phase</echo>
        </tasks>
        </configuration>
        </execution>
        <execution>
        <id>id.compile</id>
        <phase>compile</phase>
        <goals>
        <goal>run</goal>
        </goals>
        <configuration>
        <tasks>
        <echo>compile phase</echo>
        </tasks>
        </configuration>
        </execution>
        <execution>
        <id>id.test</id>
        <phase>test</phase>
        <goals>
        <goal>run</goal>
        </goals>
        <configuration>
        <tasks>
        <echo>test phase</echo>
        </tasks>
        </configuration>
        </execution>
        <execution>
        <id>id.package</id>
        <phase>package</phase>
        <goals>
        <goal>run</goal>
        </goals>
        <configuration>
        <tasks>
        <echo>package phase</echo>
        </tasks>
        </configuration>
        </execution>
        <execution>
        <id>id.deploy</id>
        <phase>deploy</phase>
        <goals>
        <goal>run</goal>
        </goals>
        <configuration>
        <tasks>
        <echo>deploy phase</echo>
        </tasks>
        </configuration>
        </execution>
        </executions>
        </plugin>
        </plugins>
        </build>
        </project>
      2. 现在跳转到pom.xml文件所在的目录,执行以下命令
        1. mvn compile
      3. maven将会开始处理并显示直到编译阶段的构建生命周期的各个阶段
  3. Site生命周期
    1. Maven Site插件一般用来创建新的报告文档,部署站点等
    2. 阶段
      1. pre-site
      2. site
      3. post-site
      4. site-deploy
    3. 在下面的例子中,我们将maven-antrun-plugin:run目标添加到Site生命周期中,这样我们显示生命周期的所有文本信息
      1. <project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
        http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.companyname.projectgroup</groupId>
        <artifactId>project</artifactId>
        <version>1.0</version>
        <build>
        <plugins>
        <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.1</version>
        <executions>
        <execution>
        <id>id.pre-site</id>
        <phase>pre-site</phase>
        <goals>
        <goal>run</goal>
        </goals>
        <configuration>
        <tasks>
        <echo>pre-site phase</echo>
        </tasks>
        </configuration>
        </execution>
        <execution>
        <id>id.site</id>
        <phase>site</phase>
        <goals>
        <goal>run</goal>
        </goals>
        <configuration>
        <tasks>
        <echo>site phase</echo>
        </tasks>
        </configuration>
        </execution>
        <execution>
        <id>id.post-site</id>
        <phase>post-site</phase>
        <goals>
        <goal>run</goal>
        </goals>
        <configuration>
        <tasks>
        <echo>post-site phase</echo>
        </tasks>
        </configuration>
        </execution>
        <execution>
        <id>id.site-deploy</id>
        <phase>site-deploy</phase>
        <goals>
        <goal>run</goal>
        </goals>
        <configuration>
        <tasks>
        <echo>site-deploy phase</echo>
        </tasks>
        </configuration>
        </execution>
        </executions>
        </plugin>
        </plugins>
        </build>
        </project>
    4. 现在打开控制台,跳转到pom.xml所在目录,并且执行以下命令
      1. mvn site
      2. maven将会开始执行,并显示直到site阶段的生命周期的各个阶段

4、maven——构建生命周期的更多相关文章

  1. 002-Apache Maven 构建生命周期

    Maven - 构建生命周期 什么是构建生命周期 构建生命周期是一组阶段的序列(sequence of phases),每个阶段定义了目标被执行的顺序.这里的阶段是生命周期的一部分. 举例说明,一个典 ...

  2. Maven 构建生命周期

    构建生命周期是什么? 构建生命周期阶段的目标是执行顺序是一个良好定义的序列.这里使用一个例子,一个典型的 Maven 构建生命周期是由下列顺序的阶段: 阶段 处理 描述 准备资源 资源复制 资源复制可 ...

  3. Maven学习(十三)-----Maven 构建生命周期

    Maven 构建生命周期 构建生命周期是什么? 构建生命周期阶段的目标是执行顺序是一个良好定义的序列. 这里使用一个例子,一个典型的 Maven 构建生命周期是由下列顺序的阶段: 阶段 处理 描述 准 ...

  4. Java-Maven-Runoob:Maven构建生命周期

    ylbtech-Java-Maven-Runoob:Maven构建生命周期 1.返回顶部 1. Maven 构建生命周期 Maven 构建生命周期定义了一个项目构建跟发布的过程. 一个典型的 Mave ...

  5. maven 学习---Maven构建生命周期

    构建生命周期是一组阶段的序列(sequence of phases),每个阶段定义了目标被执行的顺序.这里的阶段是生命周期的一部分. 举例说明,一个典型的 Maven 构建生命周期是由以下几个阶段的序 ...

  6. Maven - 构建生命周期、阶段、目标

    版权所有,未经授权,禁止转载 章节 Maven – 简介 Maven – 工作原理 Maven – Repository(存储库) Maven – pom.xml 文件 Maven – 依赖管理 Ma ...

  7. 【第四篇】- Maven 构建生命周期之Spring Cloud直播商城 b2b2c电子商务技术总结

    ​ ​ Maven 构建生命周期 Maven 构建生命周期定义了一个项目构建跟发布的过程. 一个典型的 Maven 构建(build)生命周期是由以下几个阶段的序列组成的: ​ 阶段 处理 描述 验证 ...

  8. Maven构建生命周期

    以下引用官方的生命周期解释https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html: 一.构建生命 ...

  9. Maven - 深入理解maven构建生命周期和各种plugin插件

    作者:亚当-adam 来源:CSDN 原文:https://blog.csdn.net/zhaojianting/article/details/80321488 版权声明:本文为博主原创文章,转载请 ...

随机推荐

  1. python之路set

    一.set和其他集合的区别: list :允许重复的集合,修改 tuple:允许重复的集合,不修改 dict:字典 set:不允许重复的集合,set不允许重复的,列表是无序的 1.创建一个set s= ...

  2. EF CodeFirst 一对一、一对多、多对多关系

    一对一关系 如图,无需专门指定,系统会默认在Person表中生成字段Pet_Id为Pet表的外键(一对一). Require:必要的(一对一)  Optional:可选的(一对零)  Principa ...

  3. Oracle允许IP访问配置

    http://www.linuxidc.com/Linux/2014-10/108650.htm 1.oracle服务器下/opt/app/oracle/product/11.2.0/network/ ...

  4. json_encode中文不转义问题

    //php5.3之后才有这个参数,这样存入数据库中的中文json数据就不会转义,也能被正确解析1JSON_UNESCAPED_UNICODE(中文不转为unicode ,对应的数字 256) JSON ...

  5. C++-HDU2196-Computer-[树的直径]

    直径定义:树上的最长路径,不妨设端点分别为s,t 可以证明(感觉):每个点到其最远点必定为s or t,反之亦然 首先,第一次dfs找到s 然后,第二次dfs以s为根找到t 最后,第三次dfs以t为根 ...

  6. 实现排行榜神器——redis zset

    需求:假如现在需要搞个 “运动消耗卡路里排行榜”,例似微信步数排名,显示排名前20人的信息和消耗的卡里路,怎样实现排序? 一般思路:存储信息,然后数据库查询,排序?(假如有几十万人参与排名,这样查my ...

  7. 题解【2.23考试T3】val

    3. val[题目描述] 这是一道传统题,源代码的文件名为 val.cpp/c/pas. 有一个值初始为 0,接下来 n 次你可以令其在之前基础上+2 或+1 或-1.你需要保证,这个值在整个过程中达 ...

  8. Linux上安装nodejs

    https://github.com/nodejs/node-v0.x-archive/wiki/Installing-Node.js-via-package-manager#debian-and-u ...

  9. 【Python】蟒蛇绘制(三种方式+import用法)

    第一种方式不会出现函数重名问题,而第二种会.可以用第三种解决问题 方式一: #pythondraw.py import turtle #引用 绘制(海龟)库 turtle.setup(650,350, ...

  10. library 中的internal power为何为负值?

    下图是library中一个寄存器Q pin 的internal_power table, 表中该pin 的internal power 大多都是负值.其实library 中的internal_powe ...