转自--------------------------------------https://www.cnblogs.com/hiver/p/7850954.html

假设现有项目结构如下

dailylog-parent
|-dailylog-common
|-dailylog-web

  • 三个文件夹处在同级目录中
  • dailylog-web依赖dailylog-common
  • dailylog-parent管理dailylog-common和dailylog-web。

常见参数:

1. 在dailylog-parent目录运行`mvn clean install -pl org.lxp:dailylog-web -am`,结果以下是在maven-3.3.9中的试验

  • dailylog-common成功安装到本地库
  • dailylog-parent成功安装到本地库
  • dailylog-web成功安装到本地库

该命令等价于`mvn clean install -pl ../dailylog-web -am`

2. 在dailylog-parent目录运行`mvn clean install -pl ../dailylog-common -am`,结果

  • dailylog-common成功安装到本地库
  • dailylog-parent成功安装到本地库

3. 在dailylog-parent目录运行`mvn clean install -pl ../dailylog-common -amd`,结果

  • dailylog-common成功安装到本地库
  • dailylog-web成功安装到本地库

由于dailylog-parent并不依赖dailylog-common模块,故没有被安装

4. 在dailylog-parent目录运行`mvn clean install -pl ../dailylog-common,../dailylog-parent -amd`,结果

  • dailylog-common成功安装到本地库
  • dailylog-parent成功安装到本地库
  • dailylog-web成功安装到本地库

5. 在dailylog-parent目录运行`mvn clean install -N`,结果

  • dailylog-parent成功安装到本地库

-N表示不递归,那么dailylog-parent管理的子模块不会被同时安装

6. 在dailylog-parent目录运行`mvn clean install -pl ../dailylog-parent -N`,结果

  • dailylog-parent成功安装到本地库

在dailylog-parent目录运行`mvn clean install -rf ../dailylog-common`,结果

    • dailylog-common成功安装到本地库
    • dailylog-web成功安装到本地库

==========================================================================================

mvn clean package依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。
mvn clean install依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段。
mvn clean deploy依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9个阶段。

   由上面的分析可知主要区别如下,

package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库
deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库  

==========================================================================================

Maven中的-D(Properties属性)和-P(Profiles配置文件)

-D代表(Properties属性)

使用命令行设置属性-D的正确方法是:

mvn -DpropertyName=propertyValue clean package
  • 如果propertyName不存在pom.xml,它将被设置。
  • 如果propertyName已经存在pom.xml,其值将被作为参数传递的值覆盖-D

要发送多个变量,请使用多个空格分隔符加-D

mvn -DpropA=valueA -DpropB=valueB -DpropC=valueC clean package

-P代表(Profiles配置文件)

也就是说在<profiles>指定的<id>中,可以通过-P进行传递或者赋值。

最新文章

  1. VS2013开启滚动条缩略图和双击选中高亮,效果杠杠滴!
  2. [转]中国最大的Webshell后门箱子调查,所有公开大马全军覆没
  3. java的执行与加载的过程
  4. (转)实例分析:MySQL优化经验
  5. PHP获取日期
  6. Runloop应用实例
  7. 多线程进行n皇后计算
  8. CSS 去掉IE10中type=password中的眼睛图标
  9. java 串口通信 代码
  10. Demo02_对结构体进行文件读写_张仕传_作业_
  11. Oracle case用法
  12. Linux下查看MySQL的安装路径
  13. NewsDao
  14. html5本地存储数据,实现自动登录功能
  15. Django模板渲染
  16. python之列表和生成器表达式篇
  17. Linux初学 - Centos7忘记root密码的解决办法
  18. python编程之禅
  19. 微信小程序、微信公众号、H5之间相互跳转
  20. 嵌入式&#160;探讨父子线程、进程终止顺序不同产生的结果_skdkjxy_新浪博客

热门文章

  1. Android dialog使用
  2. 完全分布式hadoop2.5.0安装 VMware下虚拟机centos6.4安装1主两从hadoop
  3. JedisCluster操作redis集群
  4. day34-常见内置模块三(re模块)
  5. Spring注解标签详解@Autowired @Qualifier等
  6. Elasticsearch之优化
  7. Grafana分析Nginx日志
  8. ReactiveX 学习笔记(19)使用 RxSwift + RxCocoa 进行 GUI 编程
  9. 遍历DOM树,each()遍历
  10. [Shell]一张图知道Shell(图)