在继续集成服务器上应用怎么的 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 下载所有依赖会是一场噩梦。