在持续集成服务器上使用怎样的 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下载所有依赖会是一场噩梦。
分享到:
相关推荐
在Linux环境中安装Java 8u351,通常需要下载对应版本的JDK,然后解压到合适的位置,配置环境变量`JAVA_HOME`、`PATH`和`CLASSPATH`,确保系统能够正确识别和执行Java命令。此外,对于开发人员来说,还需要熟悉使用...
4. **同步软件版本代码**:使用命令行工具,例如`cd MVN_VE_QB25SD_P182A10V1.0.1B06`进入版本目录,然后使用`repo init –u git3@10.0.30`命令初始化版本仓库,同步最新的代码。`repo`是一个用于管理多个Git子模块...
而 `$repo init –u git3@10.0.30.` 是使用repo工具初始化仓库并指定上游仓库的命令,这一步用于连接到远程Git仓库,获取最新的代码库。 在软件版本制作流程中,有以下几个关键步骤: 1. **版本制作准备**: - **...
- **远程仓库**:使用`git remote add origin <url>`关联远程仓库,`git push -u origin master`首次推送本地master分支到远程仓库。 2. **Java开发流程**: - **编写代码**:使用IDE如IntelliJ IDEA或Eclipse...
此外,Git工具如GitHub、GitLab或Bitbucket提供了问题追踪、代码审查和持续集成等功能,进一步提升开发效率。 在GitDemo1项目中,可能包含以下内容: - **源代码文件**:`.java`文件是Java程序的主要组成部分,...