【Maven】生命周期

简介: 【Maven】生命周期

1. Maven 构建生命周期



Maven 构建生命周期就是 Maven 将一个整体任务划分为一个个的阶段,类似于流程图,按顺序依次执行。也可以指定该任务执行到中间的某个阶段结束。

      1)Maven 的内部有三个构建生命周期,分别是 clean, default, site。其中 default 生命周期的核心阶段如下所示:

20180722212954640.png

 2)clean生命周期


    • pre-clean

    • clean

    • post-clean

    Maven 的 clean 目标(clean:clean)绑定到了 clean 生命周期的 clean 阶段。它的 clean:clean 目标通过删除构建目录删除了构建输出。所以当 mvn clean 命令执行时,Maven 删除了构建目录。


2、如何使用构建生命周期来完成构建工作



1)可以指定某个生命周期的阶段

      执行 mvn install 命令,将完成 validate, compile, test, package, verify, install 阶段,并将 package 生成的包发布到本地仓库中。其中某些带有连字符的阶段不能通过 shell 命令单独指定。例如:(pre-, post-, or process-*)

       mvn install


 2)可以指定多个不同构建生命周期的阶段

      执行 mvn clean deploy 命令,首先完成的 clean lifecycle,将以前构建的文件清理,然后再执行 default lifecycle 的 validate, compile, test, package, verify, insstall,deploy 阶段,将 package 阶段创建的包发布到远程仓库中。


        mvn clean deploy


3. 阶段与插件的关系


 如上所述,Maven 将构建过程定义为 default lifecycle,并将 default lifecycle 划分为一个个的阶段 phase,这一系列 phase 仅仅是规定执行顺序,至于每个阶段做什么工作?由谁来做?答案就在 插件(plugins) 中。


    Maven 对工程的所有操作实实在在的都是由 插件 来完成的。一个插件可以支持多种功能,称之为目标(goal),例如:compiler 插件有两个目标:compile 和 testCompile,分别实现编译源代码 和 编译测试代码。


      如何将插件与 Maven 的构建生命周期绑定在一起呢?通过将插件的目标(goal)与 build lifecycle 中 phase 绑定到一起,这样,当要执行某个 phase 时,就调用插件来完成绑定的目标。每一个阶段可以绑定0 个 或 多个目标,每个插件可以提供 1 个或多个目标。


        build lifecycle & plugin goal


       一些高级功能命令:


       跳过测试类 : -Dmaven.test.skip=true


      下载jar包源码: -DdownloadSource=true


      下载javadocs: -DdownloadJavadocs=true


       例如:


        mvn package -Dmaven.test.skip=true :表示打包时忽略掉test目录,不编译。


        mvn install -DdownloadSource=true :本地安装jar包时,下载jar的源文件包。


相关文章
|
7月前
|
Java 测试技术 Maven
Maven 有三个标准的生命周期
Maven的构建生命周期包括验证、编译、测试、打包、检查、安装和部署等阶段,用于项目构建和发布。生命周期分为Clean(清除)、Default(编译、测试、打包等)和Site(生成项目站点)三个标准阶段。插件目标是构建阶段的细化任务,可绑定到特定阶段或独立执行。例如,`mvn clean dependency:copy-dependencies package`会按顺序执行清理、复制依赖和打包操作。
|
5月前
|
Java 测试技术 Maven
Maven 构建生命周期
Maven生命周期包括Clean(清除)、Default(构建)和Site(站点)三个阶段,用于项目构建与发布。Default生命周期含validate、compile、test、package、verify、install和deploy,确保代码编译、测试、打包和部署。Clean清除目标目录,Site生成项目文档。每个阶段由插件目标组成,如mvn clean package,先执行清理,再打包。
|
6月前
|
Java 测试技术 Maven
Maven 构建生命周期
Maven的构建生命周期包含Clean、Default和Site三个阶段,用于项目构建与发布。Default生命周期包括validate、compile、test、package、verify、install和deploy,依次执行从验证、编译、测试到部署的步骤。Clean生命周期用于清除编译输出,而Site生命周期则处理项目文档和站点的生成与部署。
|
6月前
|
Java 测试技术 Maven
Maven 构建生命周期
Maven的构建生命周期包括Clean(clean)、Default(validate, compile, test, package, verify, install, deploy)和Site(site, deploy-site)三个阶段。Default生命周期用于验证、编译、测试、打包、检查、安装和部署项目。插件目标如dependency:copy-dependencies可在阶段间操作。例如,`mvn clean dependency:copy-dependencies package`先清理、复制依赖,再打包。
|
6月前
|
Java 测试技术 Maven
Maven 构建生命周期
Maven生命周期包括Clean(clean)、Default(validate, compile, test, package, verify, install, deploy)和Site(site, deploy-site)。Default生命周期用于构建与发布,验证项目、编译源码、运行单元测试、打包、质量检查、安装到本地仓库及部署到远程仓库。插件目标如`dependency:copy-dependencies`可在阶段间插入执行。例如,`mvn clean dependency:copy-dependencies package`先清理,然后复制依赖,最后打包。
|
6月前
|
Java 测试技术 Maven
Maven 构建生命周期
Maven生命周期包括Clean(清除)、Default(构建)和Site阶段,用于项目构建与发布。Default阶段涉及validate、compile、test、package、verify、install和deploy,确保代码验证、编译、测试、打包、检查、安装及部署。生命周期中的每个阶段对应特定任务,由插件目标组成,可独立或按顺序执行。例如,`mvn clean dependency:copy-dependencies package`先清理,然后复制依赖,最后打包。
|
6月前
|
Java 测试技术 Maven
Maven 构建生命周期
Maven的构建生命周期包括验证、编译、测试、打包、检查、安装和部署等阶段,确保项目正确、编译、测试并分发。它有三个标准生命周期:Clean(用于删除编译输出)、Default(涵盖验证、编译、测试、打包、验证质量、安装和部署)和Site(生成及部署项目文档)。
|
5月前
|
Java 测试技术 Maven
Maven 构建生命周期
Maven生命周期包括clean(clean目标清理输出),default(validate到deploy执行编译、测试、打包、验证、安装和部署),site(site与deploy-site生成发布站点)。每个阶段由插件目标组成,如mvn clean package执行清理和打包。生命周期阶段按顺序执行,目标可在阶段外独立调用。
|
6月前
|
Java 测试技术 Maven
Maven 构建生命周期
Maven的构建生命周期包括验证、编译、测试、打包、检查、安装和部署等阶段,确保项目正确、可分发。它有三个标准生命周期:Clean(清除目标文件)、Default(验证、编译、测试、打包、验证质量、安装和部署)和Site(生成项目文档和站点)。这些生命周期阶段按顺序执行,支持项目的完整构建、管理和发布过程。
|
7月前
|
Java 测试技术 Maven
Maven 构建生命周期
Maven构建生命周期包括验证、编译、测试、打包、检查、安装和部署等阶段,用于项目构建与发布。它有三个标准生命周期:Clean(清除目标目录)、Default(验证、编译、测试、打包、验证质量、安装和部署)和Site(生成项目文档和站点)。这些阶段按顺序执行,确保项目从干净状态开始,经过编译测试,最终部署到远程仓库供共享。