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. moveTo 与 moveBy的区别 (转贴)

    MoveTo和MoveBy可以使精灵移动,区别在于MoveTo是移动到给定的坐标点:而MoveBy是从当前坐标点移动给定的坐标点这么多的距离.举个例子,假定精灵当前的坐标点是(x, y),分别给Mov ...

  2. Python tip

    shutil.rmtree() 表示递归删除文件夹下的所有子文件夹和子文件.

  3. 《深入理解Java虚拟机》读书笔记十

    第十一章  晚期(运行期)优化 1.HotSpot虚拟机内的即时编译 解释器与编译器: 许多Java虚拟机的执行引擎在执行Java代码的时候都有解释执行(通过解释器执行)和编译执行(通过即时编译器产生 ...

  4. pytest学习3-断言

    断言: 一个标准的用例都包含了断言,编写pytest自动化脚本的时候,也需要设置断言 pytest常用断言比较大小与是否相等.是否包含.验证boolean 例子一: 验证是否相等: import py ...

  5. Tomcat/conf/server.xml文件中docBase和path的说明

    Tomcat的项目部署方式有以下三种: 1.直接把项目复制到Tomcat安装目录的webapps目录中,这是最简单的一种Tomcat项目部署的方法.2.在tomcat安装目录中有一个conf文件夹,打 ...

  6. No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor

    使用jpa做增删改查的时候出现了这个异常,原因是转化成json的时候,fasterxml.jackson将对象转换为json报错,发现有字段为null 解决方案:实体类上添加 @JsonIgnoreP ...

  7. codeforces 1288E. Messenger Simulator(树状数组)

    链接:https://codeforces.com/contest/1288/problem/E 题意:序列p的长度为n,初始序列为1 2 3 4 ...n,然后有m次操作,每次指定序列中一个数移动到 ...

  8. 从心出发-刷leetcode写给5年后的自己

    而立之年终未立,不惑而年犹存惑!这或许就是所谓的中年危机吧! 自认为是一个"勤奋"的人,又"未有寸功",天天碌碌,不知何为. "常立志"而未 ...

  9. 函数match应打印s中从ch1到ch2之间的所有字符,并且返回ch1的地址。

    1 char *match( char *s, char ch1, char ch2 ){ ; ; ; while(s[len]){ len++; } *len+];//防止s字符串全满导致t溢出 * ...

  10. scw——03错误,swagger开启错误

    错误: 代码: @Value("${swagger2.enable:false}") private boolean enable = false; 原因:没有开启swagger的 ...