学习笔记——Maven 命令行选项
2014-10-09:更新裁剪反应堆具体用法
说明:
1、使用-选项时,和后面的参数之间可以不要空格。而使用--选项时,和后面的参数之 间必须有空格。如下面的例子:
$ mvn help:describe -Dcmd=compiler:compile
$ mvn install --define maven.test.skip=true
2、有些命令行选项是从Maven2.1才有的。
3、更多命令行选项请查看mvn -h
定义属性
-D,--define<arg> 定义系统属性
这是最常用到的定制Maven插件行为的选项。
获得帮助
-h,--help 显示帮助信息
如果你要寻找特定插件的可用目标和参数信息,请参考Maven Help 插件。
使用构建剖面(profile)
要从命令行激活一个或多个构建剖面,使用下面的选项:
-P,--activate-profiles<arg> 被激活的,用逗号分隔的剖面列表
显示版本信息
要显示Maven版本信息,在命令行里,使用下面选项中的一个。
-V,--show-version 显示版本信息后继续执行Maven其他目标。
-v,--version 显示版本信息。
这两个选项输出相同的版本信息,但-v选项在打印版本信息后会中断Maven处理。如果你想让Maven版本信息出现在构建输出的开始处,你应该使用-V选项。如果你正在持续构建环境里运行Maven,并且你需要知道特定构建使用了哪个Maven版本,-V选项就可以派上用场。
离线模式运行
-o,--offline 离线模式工作
该参数可以阻止通过网络更新插件或依赖。
使用定制的POM或定制的Settings文件
如果你不喜欢pom.xml文件名、用户相关的Maven配置文件的位置或者全局配置文件的位置,你可以通过下面的选项定制这些参数。
-f, --file <file> 强制使用备用的POM文件
-s,--settings <arg> 用户配置文件的备用路径
-gs, --global-settings <file> 全局配置文件的备用路径
加密密码
下面的命令允许你使用Maven加密密码,然后存储到Maven settings文件里:
-emp,--encrypt-master-password <password> 加密主安全密码
-ep,--encrypt-password <password> 加密服务器密码
失败处理
下面的选项控制,在多模块项目构建的中间阶段,Maven如何应对构建失败。
-fae, --fail-at-end 仅影响构建结果,允许不受影响的构建继续
-ff, --fail-fast 遇到构建失败就停下来
-fn,--fail-never 无论项目结果如何,构建从不失败
-fn 和 -fae选项对于使用持续集成工具(例如Hunson)的多模块构建非常有用。 -ff 选项对于运行交互构建的开发者非常有用,因为开发者在开发周期中想得到快速的反馈。
控制Maven的日志级别
如果你想控制Maven的日志级别,你可以使用下面三个命令行选项:
-e, --errors 产生执行错误相关消息
-X, --debug 产生执行调试信息
-q, --quiet 仅仅显示错误
只有出现错误或问题,-q 选项才打印一条消息。-X 选项会打印大量的调试日志消息,这个选项主要被Maven开发者和Maven插件开发者用来诊断在开发过程中碰到的Maven代码问题。如果你想诊断依赖或路径问题,-X 选项也非常有用。如果你是Maven开发者,或者你需要诊断Maven插件的一个错误,那么-e选项就会派上用场。如果你想报告Maven或Maven插件的一个未预料到的问题,你应该传递-X 和 -e命令行选项。
用批处理方式运行Maven
要在批处理模式下运行Maven,使用下面的选项:
-B, --batch-mode 在非交互(批处理)模式下运行
如果你需要在非交互、持续集成环境下运行Manve,必须要使用批处理模式。在非交互模式下运行,当Mven需要输入时,它不会停下来接受用户的输入,而是使用合理的默认值。
下载和验证依赖
下面的命令行选项会影响Maven和远程仓库的交互以及Maven如何验证下载的构件:
-C, --strict-checksums 如果校验码不匹配的话,构建失败
-c, --lax-checksums 如果校验码不匹配的话,产生告警
-U, --update-snapshots 在远程仓管更新发布版本或快照版本时,强制更新。
如果你关注安全,你就想带 -C选项运行Maven。Maven仓库为每个存储在仓库里的构件维护一个MD5 和 SHA1 校验码。如果构件的校验码不匹配下载的构件,Maven默认被配置成告警终端用户。如果传递-C 选项,当遇到带着错误校验码的构件,会引起Maven构建失败。如果你想确保Maven检查所有快照依赖的最新版本,-U选项非常有用。
控制插件更新
下面的命令行选项告诉Maven,它将如何从远程仓库更新(或不更新)Maven插件:
-npu,--no-plugin-updates 对任何相关的注册插件,不进行最新检查。使用该选项使Maven表现出稳定行为,该稳定行为基于本地仓库当前可用的所有插件版本。
-cpu, --check-plugin-updates 对任何相关的注册插件,强制进行最新检查。强制Maven检查Maven插件的最新发布版本,即使在你的项目POM里明确规定了Maven插件版本,还是会强制更新。
-up, --update-plugins cpu的同义词.
下面的命令行选项影响Maven从远处仓库下载插件的方式:
-npr, --no-plugin-registry 对插件版本不使用~/.m2/plugin-registry.xml 里的配置。
-npr 命令行选项告诉Maven不要参考插件注册表。欲了解关于插件注册表的更多信息,去这里:http://maven.apache.org/guides/introduction/introduction-to-plugin-registry.html.
非递归构建
有时,你只想运行Maven构建,而不陷入项目子模块的构建。通过使用下面的命令行选项,你可以做到这点:
-N, --non-recursive 阻止Maven构建子模块。仅仅构建当前目录包含的项目。
运行该命令行选项使Maven只为当前目录下的项目执行生命周期中的目标或步骤。
裁剪反应堆
-am, --also-make 同时构建所列模块的依赖模块。必须和-pl同时使用。如 mvn -pl test -am ,将同时构建test的依赖模块。
-amd, --also-make-dependents 同时构建依赖于所列模块的模块。必须和-pl同时使用。如 mvn -pl test -amd ,将同时构建所有依赖test的模块。
-pl, --projects <arg> 构建指定的模块,模块间用逗号分隔。可以用来切割大型maven项目,达到急速构建的目的。
-rf, --resume-from <arg> 让反应堆从指定的模块开始构建。通俗点说就是指定从哪个模块开始构建。
详细用法请参考:http://books.sonatype.com/mvnref-book/reference/_using_advanced_reactor_options.html
参考文献:《Maven:The Complete Reference》
学习笔记——Maven 命令行选项的更多相关文章
- MOOS学习笔记3——命令行
MOOS学习笔记3--命令行 例程 /** * @code A simple example showing how to use a comms client问问怎么样 */ #include &q ...
- Maven学习(四)Maven 命令行选项
说明: 1.使用-选项时,和后面的参数之间可以不要空格.而使用--选项时,和后面的参数之 间必须有空格.如下面的例子: $ mvn help:describe -Dcmd=compiler:co ...
- MongoDB学习笔记~客户端命令行的使用
回到目录 当我们从MongoDB网站下载安装包之后,它会伴随有一系列的工具,服务器程序mongod是我们耳熟能详的了,客户端mongo和性能检测mongostat我们可能就没有用过了,今天主要是介绍一 ...
- osg学习笔记2, 命令行参数解析器ArgumentParser
ArgumentParser主要负责命令行参数的读取 #include <osgDB/ReadFile> #include <osgViewer/Viewer> int mai ...
- Objective-C学习笔记_命令行参数获取
找到编译目录下执行myapp >./myapp param1 param2 在应用中可以这样来获取param1/param2 NSProcessInfo *proc = [NSProcessIn ...
- SQL Server 2012学习笔记 1 命令行安装
setup.exe /Q /IACCEPTSQLSERVERLICENSETERMS /ACTION=install /PID=748RB-X4T6B-MRM7V-RTVFF-CHC8H /FEATU ...
- NodeJS学习笔记 (26)命令行设计-repl
https://github.com/chyingp/nodejs-learning-guide
- Microsoft Windows Installer 工具 Msiexec.exe 的命令行选项
摘自:http://support.microsoft.com/kb/314881/zh-cn 概要 本文列出了 Windows Installer 工具 Msiexec.exe 的命令行选项.Msi ...
- memcached学习笔记——存储命令源码分析下篇
上一篇回顾:<memcached学习笔记——存储命令源码分析上篇>通过分析memcached的存储命令源码的过程,了解了memcached如何解析文本命令和mencached的内存管理机制 ...
随机推荐
- node.js之excel文件读取
金天:学习一个新东西,就要持有拥抱的心态,如果固守在自己先前的概念体系,就会有举步维艰的感觉.node.js解析excel, 读取记录. 业务需求,从excel (xlsx, xls)导入数据. 备选 ...
- C++分类
VS的ncb.pdb文件分析 在C/C++函数中使用可变参数 #pragma VS查看DLL接口 线程本地存储TLS(Thread Local Storage)的原理和实现--分类和原理
- android SQLiteOpenHelper使用示例
我们大家都知道Android平台提供给我们一个数据库辅助类来创建或打开数据库,这个辅助类继承自SQLiteOpenHelper类,在该类的 构造器中,调用Context中的方法创建并打开一个指定名称的 ...
- SSI
一.简介 SSI(Server Side Includes)技术,是为WEB服务器提供的一套命令,在HTML文档中通过注释行调用的命令或指针,就可以将文本.图形或应用程序信息包含到网页中. SSI具备 ...
- linux下mysql安装、目录结构、配置
1.准备安装程序(官方网站下载) 服务端:MySQL-server-community-5.1.44-1.rhel4.i386.rpm 客户端:MySQL-client-community-5.1.4 ...
- Laxcus大数据管理系统2.0(5)- 第三章 数据存取
第三章 数据存取 当前的很多大数据处理工作,一次计算产生几十个GB.或者几十个TB的数据已是正常现象,驱动数百.数千.甚至上万个计算机节点并行运行也已经不足为奇.但是在数据处理的后面,对于这种在网络间 ...
- 边工作边刷题:70天一遍leetcode: day 101
dp/recursion的方式和是不是game无关,和game本身的规则有关:flip game不累加值,只需要一个boolean就可以.coin in a line II是从一个方向上选取,所以1d ...
- disabled和readonly的区别?
在博客园中看到这样一篇文章,关于disabled和readonly的区别,以前还真的没有注意它们的区别,还是有必要知道它们的区别的,所以转载了. 这两个属性有类似之处,但是区别也是巨大的,之所以说类似 ...
- AutoIT 实现Firefox下载
Firefox下载的完整代码: Func IsVisible($handle) ;WinGetState: 2 = Window is visible If BitAND(WinGetState($h ...
- Android性能测试工具Emmagee介绍
Emmagee介绍 Emmagee是监控指定被测应用在使用过程中占用机器的CPU.内存.流量资源的性能测试小工具.该工具的优势在于如同windows系统性能监视器类似,它提供的是数据采集的功能,而行为 ...