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. vue 项目初始化

    初始化 vue init webpack-simple myproject 安裝 npm install 运行 npm run dev 访问地址 http://localhost:8080/ 安装we ...

  2. Codeforces Round #601 (Div. 2) E1 Send Boxes to Alice (Easy Version)

    #include <bits/stdc++.h> using namespace std; typedef long long ll; ; int a[N]; int n; bool pr ...

  3. IIS新类型文件500错误

    时间过得太久,就真的会忘掉.在这里记录一下吧. 不得已重新安装系统,然后以前的配置都忘掉了.对新类型的文件.geojson 文件报错. 500错误. 首先反复调试MIME类型是否有问题, 再看映射是否 ...

  4. OrCAD 16.6 自建仿真模型

    今天仿真用到一个三极管,NXP的MMBT2222A,OdCAD自带的库里没找到,于是打算学着自己建立一个仿真模型 http://www.nxp.com/documents/spice_model/MM ...

  5. C变量常量

    变量是指其值可以变化的量.计算机中,指令代码.数据都存储于内存中.变量也需要存储在内存中.在计算机中,每个变量都被分配了一块内存空间,在这些空间里存储的就是变量的值.变量之所以可以变化,就是这个存储空 ...

  6. vue -- v-model 表单绑定

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. Redis09——事务(悲观锁、乐观锁)

    事务 定义: Redis事务是一个单独的隔离操作 ①事务中所有的命令都会被序列化.按照顺序执行 ②事务在执行过程中不会被其他客户端发送来的命令请求打断 作用: 串联多个命令防止别的命令插队 multi ...

  8. 在Linux系统上安装Jenkins

    1.首先准备安装java环境,安装jdk 详情查看博客以,这里不做多介绍. 2.下载Jenkins至Linux服务器 查看内核版本信息:cat /proc/version uname -m cat / ...

  9. 使用QtCreator运行Gstreamer程序

    1.创建一个简单的Plain C Application 2.Build System选择qmake 3.Kit Selection默认Desktop Qt x.xx.x GCC 64bit 4..p ...

  10. multiprocessing 多进程实现 生产者与消费者模型JoinableQueue

    from multiprocessing import JoinableQueue import time import random import asyncio import logging fr ...