最近在阿里云申请一台云主机测试Jenkins + Maven自动化持续部署,在构建过程中经常进程自动退出;由于申请测试的免费云主机配置较低,所以每次在构建的时候会发现访问主机就会变得很卡,最后进程退出。Jenkins权威指南文中描述:

    持续集成服务器会使用很多内存。构建会小号内存,多个构建并发运行也会消耗更多的内存。所有在不管你想要同事运行多少构建的情况下,均应该确保构建服务器有足够的RAM来应对。

    Jenkins本身自然也需要RAM来运行,但是如果你需要支持大量的构建过程,则仅仅分配给Jenkins大量内存是不够的。事实上,每次开始一个构建的时候,Jenkins都会跨越一个新的Java进程,所以在一个大型的构建当中,是构建过程需要内存,而不是Jenkins。


   如上文所说,在构建过程中会使用大量内存,而本身测试的云主机内存较低(1G),所以导致在构建的时候经常由于内存溢出导致进程退出,此时可以通过配置一些Jenkins的环境变量,如JAVA_OPTS(Java参数)、MAVEN_OPTS和ANT_OPTS等

wKioL1krp9awd6cqAAAktL90bD8065.png-wh_50

或者直接在profile添加

export JAVA_OPTS=-Djava.awt.headless=true -Xmx512m -DJENKINS_HOME=/www/data/jenkins
export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=256m"
export ANT_OPTS="-Xmx512mm -XX:MaxPermSize=256m"


配置完成之后发现构建过程主机操作不在卡的飞起,但是却老是莫名奇妙的失败,查看日志发现经常在访问Maven仓库下载依赖包的时候退出;由于国内网络的特殊性,导致访问Maven仓库可能会失败,于是配置上国内的镜像仓库

修改Maven配置文件中的setting.xml

vim {Maven_HOME}/conf/setting.xml

在<mirrors>...... </mirrors>之间添加如下内容:

<mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
</mirror>

配置好之后,重新构建你会发现下载依赖包的时候速度飞一般的愉悦!!