Maven-11: 从命令行调用插件
mvn -h显示mvn命令帮助:
usage: mvn [options] [<goal(s)>] [<phase(s)>] Options:
-am,--also-make If project list is specified, also
build projects required by the
list
-amd,--also-make-dependents If project list is specified, also
build projects that depend on
projects on the list
-B,--batch-mode Run in non-interactive (batch)
mode
-b,--builder <arg> The id of the build strategy to
use.
-C,--strict-checksums Fail the build if checksums don't
match
-c,--lax-checksums Warn if checksums don't match
-cpu,--check-plugin-updates Ineffective, only kept for
backward compatibility
-D,--define <arg> Define a system property
-e,--errors Produce execution error messages
-emp,--encrypt-master-password <arg> Encrypt master security password
-ep,--encrypt-password <arg> Encrypt server password
-f,--file <arg> Force the use of an alternate POM
file (or directory with pom.xml).
-fae,--fail-at-end Only fail the build afterwards;
allow all non-impacted builds to
continue
-ff,--fail-fast Stop at first failure in
reactorized builds
-fn,--fail-never NEVER fail the build, regardless
of project result
-gs,--global-settings <arg> Alternate path for the global
settings file
-h,--help Display help information
-l,--log-file <arg> Log file to where all build output
will go.
-llr,--legacy-local-repository Use Maven 2 Legacy Local
Repository behaviour, ie no use of
_remote.repositories. Can also be
activated by using
-Dmaven.legacyLocalRepo=true
-N,--non-recursive Do not recurse into sub-projects
-npr,--no-plugin-registry Ineffective, only kept for
backward compatibility
-npu,--no-plugin-updates Ineffective, only kept for
backward compatibility
-nsu,--no-snapshot-updates Suppress SNAPSHOT updates
-o,--offline Work offline
-P,--activate-profiles <arg> Comma-delimited list of profiles
to activate
-pl,--projects <arg> Comma-delimited list of specified
reactor projects to build instead
of all projects. A project can be
specified by [groupId]:artifactId
or by its relative path.
-q,--quiet Quiet output - only show errors
-rf,--resume-from <arg> Resume reactor from specified
project
-s,--settings <arg> Alternate path for the user
settings file
-T,--threads <arg> Thread count, for instance 2.0C
where C is core multiplied
-t,--toolchains <arg> Alternate path for the user
toolchains file
-U,--update-snapshots Forces a check for missing
releases and updated snapshots on
remote repositories
-up,--update-plugins Ineffective, only kept for
backward compatibility
-V,--show-version Display version information
WITHOUT stopping build
-v,--version Display version information
-X,--debug Produce execution debug output
goal和phase分别指插件目标和生命周期阶段。
我们知道,可以通过mvn命令激活生命周期阶段,从而执行那些绑定在生命周期阶段上的插件目标。但Maven还支持直接从命令行调用插件目标。Maven支持这种方式是因为有些任务不适合绑定在生命周期上,例如maven-help-plugin:describe,我们不需要在构建项目的时候去描述插件信息。又如maven-dependency-plugin:tree,我们也不需要在构建项目的时候去显示依赖树。因此这些插件目标应该通过如下方式使用:
$ mvn help:describe -Dplugin=compiler
$ mvn dependency:tree
不过,这里还有一个疑问,describe是maven-help-plugin的目标没错,但冒号前面的help是什么呢?它既不是groupId,也不是artifactId,Maven是如何根据该信息找到对应版本插件的呢?同理,为什么不是maven-dependency-plugin:tree而是dependency:tree呢?
解答该疑问之前,可以先尝试一下如下的命令:
$ mvn org.apache.maven.plugins:maven-help-plugin:2.1:describe -Dplugin=compiler
$ mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:tree
这两条命令就比较容易理解了。它们的效果与之前的两条命令基本是一样的,但显然前面的命令更简洁,更容易记忆和使用。为了达到该目的,Maven引入了目标前缀的概念。help是maven-help-plugin的目标前缀,dependency是maven-dependency-plugin的目标前缀,有了插件前缀,Maven就能找到对应的artifactId。不过仅有artifactId,而没有groupId和version,Maven是无法精确定位到某个插件的。那么,Maven是如何做到的呢?我们将在后面的文章详细剖析这个问题。
最新文章
- fedora22切换用户windows分区不能自动挂载
- CentOS7 开机调整亮度
- rdesktop共享剪贴板的问题
- iOS textField输入金额的限制,小数点前9位,后面两位
- linux命令学习(1):grep 命令
- RDLC系列之三 图片显示
- BeanPostProcessor 的使用,实现在对象初始化之前或者之后对对象进行操作
- 03_MySQL中文乱码处理_02_确保MySQL插入数据不乱码的解决方法
- luci 随笔
- create a new table for the query results
- ubuntu14.04 64位安装H3C iNode客户端
- Javascript和JQuery中常用的随机数产生函数
- Python内置函数(32)——all
- Python内置函数(42)——memoryview
- UpdatePanel1里面使用FileUpload控件
- windows解压.tar00文件
- dalaozouleyeyaojianqiangdehuoxiaqu
- Git入门看这一篇就够了! (转)
- python3使用pymysql模块,连接mysql数据库,实现新增、查询和更新操作
- vue-8-组件
热门文章
- SSH服务端配置、优化加速、安全防护
- HttpURLConnection 411错误解决
- 提升R代码运算效率的11个实用方法——并行、效率
- iframe父页面获取子页面的参数
- mpeg文件格式分析
- Java并发系列[7]----CountDownLatch源码分析
- 在MyEclipse 10中配置tomcat田服务器时出现的问题以及解觉办法
- 【BZOJ3931】【CQOI2015】网络吞吐量(最短路,网络流)
- [BZOJ1041] [HAOI2008] 圆上的整点 (数学)
- java设计模式-----11、代理模式