笔记:Maven 生命周期与命令行详解
Maven 拥有三套相互独立的生命周期,分别是 clean、default和site,clean 生命周期的目的是清理项目,default 生命周期的目的是构建项目,而site生命周期的目的是建立项目站点,每个生命周期包含一些阶段,这些阶段是有顺序的,并且后面的阶段依赖前面的阶段,用户和Maven最直接的交互方式就是调用这些生命周期阶段。
- clean 生命周期:包含的阶段有 pre-clean、clean 和 post-clean
- pre-clean:执行一些清理前需要完成的工作
- clean:清理上一次构建生成的文件
- post-clean:执行一些清理后需要完成的工作
- default生命周期:定义了真正构建时说需要执行的所有步骤,是所有生命周期中最核心的部分
- validate
- initzlize
- generate-sources
- process-sources:处理项目主资源文件,一般来说是对 src/main/resources 目录的内容进行变量替换等工作后,复制到项目输出的主 classpath 目录中
- generate-resources
- process-resources
- compile:编译项目的主源码,一般来说是对 src/main/java 目录的内容进行编译后,复制到项目输出的主 classpath 目录中
- process-classes
- generate-test-sources
- process-test-sources:处理项目测试资源文件,一般来说是对 src/test/resources 目录的内容进行变量替换等工作后,复制到项目输出的测试 classpath 目录中
- generate-test-resources
- process-test-resources
- test-compile:编译项目的测试代码,编译项目的主源码,一般来说是对 src/test/java 目录的内容进行编译后,复制到项目输出的测试 classpath 目录中
- process-test-classes
- test:使用单元测试框架运行测试,测试代码不会被打包或部署
- prepare-package
- package:接受编译好的代码,打包成可发布的格式,如JAR
- pre-integration-test
- integration-test
- post-integration-test
- verify
- install:将包安装到Maven本地仓库,供本地其他 Maven 项目使用
- deploy:将最终的包复制到远程仓库,供其他开发人员和Maven项目使用
- site 生命周期
- pre-site:执行一些在生成项目站点之前需要完成的工作
- site:生成项目站点文档
- post-site:执行一些在生成项目站点之后需要完成的工作
- site-deploy:将生成的项目站点发布到服务器上
从命令行执行
Maven
任务的最主要方式就是调用
Maven
的生命周期阶段,各个生命周期是相互独立的,而一个生命周期的阶段是有前后依赖关系的,下面以一些常见的
Maven
命令为例:
- mvn
clean:该命令调用
clean
生命周期的
clean
阶段,实际执行的阶段为
pre-clean
和
clean
。 - mvn
test:该命令调用
default
生命周期的
test阶段,实际执行的阶段从
validate
到
test
阶段。 - mvn
clean
install:该命令调用
clean
和
default
生命周期,实际执行的为
clean
生命周期的
pre-clean
和
clean
阶段;default
生命周期的
validate
到
install
阶段
由于
Maven
中主要的生命周期阶段并不多,而常用的
Maven命令实际都是基于这些阶段简单组合而成的。
笔记:Maven 生命周期与命令行详解的更多相关文章
- Scrapy框架的命令行详解【转】
Scrapy框架的命令行详解 请给作者点赞 --> 原文链接 这篇文章主要是对的scrapy命令行使用的一个介绍 创建爬虫项目 scrapy startproject 项目名例子如下: loca ...
- [转载]OpenSSL中文手册之命令行详解(未完待续)
声明:OpenSSL之命令行详解是根据卢队长发布在https://blog.csdn.net/as3luyuan123/article/details/16105475的系列文章整理修改而成,我自己 ...
- 7Z命令行详解
7z.exe在CMD窗口的使用说明如下: 7-Zip (A) 4.57 Copyright (c) 1999-2007 Igor Pavlov 2007-12-06 Usage: 7za <co ...
- 7-zip命令行详解
一.简介 7z,全称7-Zip, 是一款开源软件.是目前公认的压缩比例最大的压缩解压软件. 主要特征: # 全新的LZMA算法加大了7z格式的压缩比 # 支持格式: * 压缩 / 解压缩:7z, XZ ...
- Maven使用教程三:maven的生命周期及插件机制详解
前言 今天这个算是学习Maven的一个收尾文章,里面内容不局限于标题中提到的,后面还加上了公司实际使用的根据profile配置项目环境以及公司现在用的archetype 模板等例子. 后面还会总结一个 ...
- gcc命令行详解
介绍] ----------------------------------------- 常见用法: GCC 选项 GCC 有超过100个的编译选项可用. 这些选项中的许多你可能永远都不会用到, 但 ...
- Gradle之恋-命令行详解
虽然很多童鞋都必须要用IDE,但有些命令是IDE很难表现出来的,还是命令行返璞归真.本文就带你来剖析Gradle的命令行. 本文不包括试验性(incubating)的选项,如--configure-o ...
- vue2.0项目实战(4)生命周期和钩子函数详解
最近的项目都使用vue2.0来开发,不得不说,vue真的非常好用,大大减少了项目的开发周期.在踩坑的过程中,因为对vue的生命周期不是特别了解,所以有时候会在几个钩子函数里做一些事情,什么时候做,在哪 ...
- Fragment 的生命周期及使用方法详解
Fragment 的基础知识介绍 1.1 概述 1.1.1 特性 By hebang32624 Fragment 是 activity 的界面中的一部分或一种行为.可以把多个 Fragment 组合到 ...
随机推荐
- Request processing failed; nested exception is java.lang.IllegalArgumentException: No converter found for return value of type: class cn.e3mall.pojo.TbItem
这个异常是缺少json相关的包 把以下依赖补上就好: <!-- Jackson Json处理工具包 --><dependency> <groupId>com.fas ...
- python基础 数据类型 判断语句
python 类unix系统默认已经安装或使用源码包./confighuremakemake install python运行方法 通过交互式解释器 [root@room1pc01 ~]# pytho ...
- AttributeError: 'TestLogin' object has no attribute 'driver' in Pycharm for python selenium
自动化测试学习中的问题: 最近几天在写登陆测试,遇到一个问题,困惑我的几个小时......... 我各种百度,花费大量时间,才找到我的问题的根本所在,最终解决了我的问题,主要是大小写的问题def Se ...
- 项目总结1——excel导出相关问题
1.excel导出文件时,文件名中中文部分空白不显示的问题,原本写法是: String fileName = "物联网PBOSS主机巡检日报-" + inspectTime + & ...
- Caused by: java.lang.ClassNotFoundException: javax.persistence.NamedStoredProcedureQuery
1.错误描述 2014-7-12 21:06:37 org.hibernate.engine.jdbc.internal.LobCreatorBuilder useContextualLobCreat ...
- 芝麻HTTP:redis-py的安装
对于Redis来说,我们要使用redis-py库来与其交互,这里就来介绍一下它的安装方法. 1. 相关链接 GitHub:https://github.com/andymccurdy/redis-py ...
- The Eclipse executable launcher was unable to locate its companion launcher jar的解决方法
大家都知道eclipse是免安装的,基本上解压就能用,但是笔者在解压后打开eclipse时遇到一个奇葩的问题,如题目所示. 在网上搜了半天,基本上都说的是:The Eclipse executable ...
- JavaScript小括号、中括号、大括号的多义性
语义1,函数声明时参数表 func(arg1,arg2){ // ... } 语义2,和一些语句联合使用以达到某些限定作用 // 和for in一起使用 for(var a in obj){ // . ...
- 凯撒密码加密解密--JAVA实现(基础)
凯撒密码一种代换密码,据说凯撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码.凯撒密码的基本思想是:通过把字母移动一定的位数来实现加密和解密.明文中的所有字母都在字母表上向后(或向前) ...
- 都是SCI惹的祸?
都是SCI惹的祸? 过去只知道地质学家需要跋山涉水寻找宝藏,最近同一位海外归来的学者谈起,方知少数其它领域的科研人员,也"跋山涉水",在内地研究机构寻找可以写好文章的研究成果,不管 ...