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是如何做到的呢?我们将在后面的文章详细剖析这个问题。

最新文章

  1. fedora22切换用户windows分区不能自动挂载
  2. CentOS7 开机调整亮度
  3. rdesktop共享剪贴板的问题
  4. iOS textField输入金额的限制,小数点前9位,后面两位
  5. linux命令学习(1):grep 命令
  6. RDLC系列之三 图片显示
  7. BeanPostProcessor 的使用,实现在对象初始化之前或者之后对对象进行操作
  8. 03_MySQL中文乱码处理_02_确保MySQL插入数据不乱码的解决方法
  9. luci 随笔
  10. create a new table for the query results
  11. ubuntu14.04 64位安装H3C iNode客户端
  12. Javascript和JQuery中常用的随机数产生函数
  13. Python内置函数(32)——all
  14. Python内置函数(42)——memoryview
  15. UpdatePanel1里面使用FileUpload控件
  16. windows解压.tar00文件
  17. dalaozouleyeyaojianqiangdehuoxiaqu
  18. Git入门看这一篇就够了! (转)
  19. python3使用pymysql模块,连接mysql数据库,实现新增、查询和更新操作
  20. vue-8-组件

热门文章

  1. SSH服务端配置、优化加速、安全防护
  2. HttpURLConnection 411错误解决
  3. 提升R代码运算效率的11个实用方法——并行、效率
  4. iframe父页面获取子页面的参数
  5. mpeg文件格式分析
  6. Java并发系列[7]----CountDownLatch源码分析
  7. 在MyEclipse 10中配置tomcat田服务器时出现的问题以及解觉办法
  8. 【BZOJ3931】【CQOI2015】网络吞吐量(最短路,网络流)
  9. [BZOJ1041] [HAOI2008] 圆上的整点 (数学)
  10. java设计模式-----11、代理模式