比较好的maven构建集成命令总结
| 本文阅读量:次
比较好的maven构建集成命令总结:
- 别忘了clean:
clean能够保证上一次构建的输出不会影响到本次构建。
- 使用deploy而不是install:
构建的SNAPSHOT输出应当被自动部署到私有Maven仓库供他人使用,这一点在前面已经详细论述。
- 使用-U参数:
该参数能强制让Maven检查所有SNAPSHOT依赖更新,确保集成基于最新的状态,如果没有该参数,Maven默认以天为单位检查更新,而持续集成的频率应该比这高很多。
- 使用-e参数:
如果构建出现异常,该参数能让Maven打印完整的stack trace,以方便分析错误原因。
- 使用-Dmaven.repo.local参数(非常实用的参数):
如果持续集成服务器有很多任务,每个任务都会使用本地仓库,下载依赖至本地仓库,为了避免这种多线程使用本地仓库可能会引起的冲突,可以使用-Dmaven.repo.local=D:\m2repository(这是windows系统路径)这样的参数为每个任务分配本地仓库。
- 使用-Dmaven.test.skip参数(可选):
改参数表示让Maven构建时跳过单元测试,觉得没必要可不指定此参数。
- 使用-B参数:
该参数表示让Maven使用批处理模式构建项目,能够避免一些需要人工参与交互而造成的挂起状态。
综上,持续集成服务器上的集成命令应该为:
mvn clean install -B -e -U -Denv=prd -Dmaven.test.skip=true -Dmaven.repo.local=${本地仓库路径}
此外,定期清理持续集成服务器的本地Maven仓库也是个很好的习惯,这样可以避免浪费磁盘资源,几乎所有的持续集成服务器软件都支持本地的脚本任务,你可以写一行简单的shell或bat脚本,然后配置以天为单位自动清理仓库。需要注意的是,这么做的前提是你有私有Maven仓库,否则每次都从Internet下载所有依赖会是一场噩梦。
maven package,install,deploy区别:
- package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库。
- install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库。
- deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库。