笔记: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 组合到 ...
随机推荐
- Oracle安装、Navicat for Oracle、JDBCl连接、获取表结构
Oracle安装 Navicat for Oracle配置 Oracle JDBC连接(增删改查) Oracle安装 环境windows 7 64位 安装版本:oracle 11g(64位) 下载地址 ...
- tensorflow+入门笔记︱基本张量tensor理解与tensorflow运行结构
Gokula Krishnan Santhanam认为,大部分深度学习框架都包含以下五个核心组件: 张量(Tensor) 基于张量的各种操作 计算图(Computation Graph) 自动微分(A ...
- 芝麻HTTP: Python爬虫入门之Urllib库的高级用法
1.设置Headers 有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我们需要设置一些Headers 的属性. 首先,打开我们的浏览 ...
- CF371 D Searching Rectangles
基本思路就是二分 每条边分别二分求 c++11 用fflush(sdtout) 不行 囧啊 #include<bits/stdc++.h> using namespace std; int ...
- ES6常用知识点小结
ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准. 因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015(简称ES2015).虽然浏览器在不 ...
- NOIP2010题解
所有题目链接均来自洛谷 T1机器翻译 原题戳这里 自古T1是水题 因为每一个数字都小于1000,所以对于是否在队列中可以开数组查询 对于大小的限制,弄一个队列维护大小即可(水题呀...) 这题在Win ...
- 一些比较隐秘的OJ的网址
( 1 )COGS:cogs.pro:8080 ( 2 )AGC:agc012.contest.atcoder.jp ( 3 )CS Acaemy:csacademy.com ( 4 )JoyOI:w ...
- JavaScript:['1','2','3'].map(parseInt)问题解析
最近碰到了['1','2','3'].map(parseInt)这种看似不起眼陷阱却极大的问题. 这乍一看,感觉应该会输出[1,2,3].但是,实际上并不是我们想的这样.你可以现在打开console, ...
- scrapy 爬虫基础
Scrapy是Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试. 安装Scrapy的 ...
- Kendo UI ASP.Net MVC 实现多图片及时显示加上传(其中有借鉴别人的代码,自己又精简了一下,如有冒犯,请多原谅!)
View: <div class="demo-section k-content"> @(Html.Kendo().Upload() .Name("files ...