maven正确的集成命令-U -B 等

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

时间: 2024-08-18 02:32:44

maven正确的集成命令-U -B 等的相关文章

Maven实战(四)——基于Maven的持续集成实践

Martin的<持续集成> 相信非常多读者和我一样.最早接触到持续集成的概念是来自Martin的著名文章<持续集成>.该文最早公布于2000年9月,之后在2006年进行了一次修订.它清晰地解释了持续集成的概念.并总结了10条实践,它们分别为: 仅仅维护一个源代码仓库 自己主动化构建 让构建自行測试 每人每天向主干提交代码 每次提交都应在持续集成机器上构建主干 保持高速的构建 在模拟生产环境中測试 让每一个人都能轻易获得最新的可运行文件 每一个人都能看到进度 自己主动化部署 原始文章

maven集成命令-U -B -P -e -X

maven -U clean compile install -e -X -Dmaven.test.skip=true 在持续集成服务器上使用怎样的 mvn 命令集成项目,这个问题乍一看答案很显然,不就是 mvn clean install 么?事实上比较好的集成命令会稍微复杂些,下面是一些总结: 不要忘了clean: clean能够保证上一次构建的输出不会影响到本次构建. 使用deploy而不是install: 构建的SNAPSHOT输出应当被自动部署到私有Maven仓库供他人使用,这一点在前

Maven 架构搭建的命令行及学习笔记(一)

Maven 架构搭建的命令行及学习笔记 ================================================== 1.配置环境变量: 说明: 系统环境变量和用户变量的区别 搭建编译环境时为什么有时候要设置环境变量,而有时又设置用户变量? 环境变量分为系统环境变量和用户环境变量. 你所说的环境变量是指系统环境变量,对所有用户起作用 而用户环境变量只对当前用户起作用. 例如你要用java,那么你把java的bin目录加入到path变量下面,那么它就是系统环境变量,所有用户

6 Maven聚合与集成

Maven的聚合特性能够把项目的各个模块聚合在一起构件,而Maven的继承特性能够帮助抽取各个模块相同的依赖和插件等配置,简化POM的同时,还能促进各个模块配置的一致性.     1.聚合 为了能使用一条命令构建两个模块A,B,需要创建一个新的模块G,然后通过模块构建整个项目的所有模块.G本身就是一个Maven项目,它必须有自己的POM,不过同时作为一个聚合项目,POM的packaging必须是pom.如下,否则无法构建. <packaging>pom</packaging> &l

JBoss 系列一 O O:Maven jBPM 6 集成示例

概述 jBPM 6 中底层架构基于 Maven,所以我们可以很容易的进行 Maven jBPM 6 集成示例,本文分三个部分: 基本原理介绍 Maven jBPM 6 集成 jBPM 6 中使用 Maven 特性实时监听服务器端的更新 基本原理介绍 如下图 如图所示,我们有两台服务器,jBPM 6 服务器和客户端服务器: 首先 jBPM 6 服务器如果我们通过 Work Bench 将编辑完成的流程打包发布,它会将其发布到 jBPM 6 服务器对应的 Maven 仓库,这个仓库相比较客户端的应用

JBoss 系列一 O O:Maven jBPM 6 集成演示样例

概述 jBPM 6 中底层架构基于 Maven,所以我们能够非常easy的进行 Maven jBPM 6 集成演示样例,本文分三个部分: 基本原理介绍 Maven jBPM 6 集成 jBPM 6 中使用 Maven 特性实时监听server端的更新 基本原理介绍 例如以下图 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva3lsaW5zb29uZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/diss

让Maven正确处理javac警告

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.1:compile (default-compile) on project XX: Compilation failure: Compilation failure: 这个问题应该是国内比较常遇见的而一个,这里有篇文章可以很好地解决这个问题 http://www.juvenxu.com/2010/09/01/maven-javac-

maven的一些基础命令

1.显示当前构建的实际pom,包含活动的Profile Java代码   mvn help:effective-pom 2.打印出项目的世界settings,包括从全局的settings和用户级别settings继承的配置 Java代码   mvn help:effective-settings 3.获取某个插件的信息,例如下面获取archetype的信息 Java代码   mvn help:describe -Dplugin=archetype 4.如果你想输出完整的带有参数的目标列表,只要加

maven查看依赖树结构命令

maven查看依赖树结构命令mvn dependency:tree -Doutput=XX.txt 将依赖树关系输出到XX.txt文本中maven依赖截图为: