在持续集成服务器上使用怎样的 mvn 命令集成项目,这个问题乍一看答案很显然,不就是 mvn clean install
么?事实上比较好的集成命令会稍微复杂些,下面是一些总结:
-
不要忘了clean: clean能够保证上一次构建的输出不会影响到本次构建。
-
使用deploy而不是install:
构建的SNAPSHOT输出应当被自动部署到私有Maven仓库供他人使用,这一点在前面已经详细论述。
-
使用-U参数:
该参数能强制让Maven检查所有SNAPSHOT依赖更新,确保集成基于最新的状态,如果没有该参数,Maven默认以天为单位检查更新,而持续集成的频率应该比这高很多。
-
使用-e参数:如果构建出现异常,该参数能让Maven打印完整的stack
trace,以方便分析错误原因。
-
使用-Dmaven.repo.local参数:如果持续集成服务器有很多任务,每个任务都会使用本地仓库,下载依赖至本地仓库,为了避免这种多线程使用本地仓库可能会引起的冲突,可以使用-Dmaven.repo.local=/home/juven/ci/foo-repo/这样的参数为每个任务分配本地仓库。
-
使用-B参数:该参数表示让Maven使用批处理模式构建项目,能够避免一些需要人工参与交互而造成的挂起状态。
综上,持续集成服务器上的集成命令应该为 mvn clean deploy -B -e -U
-Dmaven.repo.local=xxx
。此外,定期清理持续集成服务器的本地Maven仓库也是个很好的习惯,这样可以避免浪费磁盘资源,几乎所有的持续集成服务器软件都支持本地的脚本任务,你可以写一行简单的shell或bat脚本,然后配置以天为单位自动清理仓库。需要注意的是,这么做的前提是你有私有Maven仓库,否则每次都从Internet下载所有依赖会是一场噩梦。
分享到:
相关推荐
maven3-plugin-3.0.1-sources.jar
apache-maven-3.8.6-bin.tar.tz--test apache-maven-3.8.6-bin.tar.tz--test apache-maven-3.8.6-bin.tar.tz--test apache-maven-3.8.6-bin.tar.tz--test apache-maven-3.8.6-bin.tar.tz--test apache-maven-3.8.6-...
maven集成jetty必须jar包maven-jetty-plugin,内含多个版本
maven资源 apache-maven-3.3.9-bin.zip
解决tomcat8-maven-plugin-3.0-r1655215.jar阿里云同有的问题。放到路径org\apache\tomcat\maven\tomcat8-maven-plugin\3.0-r1655215\就可以了
java maven 仓库包 pentaho-aggdesigner-algorithm-5.1.3-jhyde.jar
Maven使用tomcat8-maven-plugin插件
apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-...
maven-jar-plugin-3.1.1.jar
maven-project-info-reports-plugin-2.2.jar
maven-archetype-webapp-1.0.jar,下载,如果有需要的同志可以自己下载,。
maven-surefire-plugin-2.22.1.jar
maven-shared-utils-3.2.1.jar
maven-archetype-quickstart-1.1.jar包下载
maven-deploy-plugin-2.7.jar
maven-site-plugin-3.3.jar
maven.rar apache-maven-3.5.4
maven-antrun-plugin-3.0.0.jar
maven-resources-plugin-2.4.1.jar