亲测解决Jenkins打包安卓项目提示堆内存不足

现象:

公司换用新的服务器,配置为2核8G,JAVA和SDK环境变量已配置。构建打包时提示java-lang-OutOfMemoryError-Java-heap-space

定位问题:

在网上谷歌了半天,大部分的解决方法都是修改jenkins的配置:

命令行中使用vim编辑 vim /etc/sysconfig/jenkins

点击i进入编辑模式 修改为如下内容

JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -Xms2048m -Xmx2048m"
按ESC退出编辑模式,输入:wq保存(:q!不保存退出)

但是实际测试发现仍然提示堆内存不足

使用ps -ef|grep jenkins查看jenkins的任务,
显示内容为

jenkins    66287       1  0 Nov05 ?        00:04:54 /usr/local/jdk1.8.0_271/bin/java -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
jenkins   204645   66287 36 11:26 ?        00:00:01 /usr/local/jdk1.8.0_271/bin/java -Xmx64m -Xms64m -Dorg.gradle.appname=gradle -classpath /usr/local/gradle-6.5/lib/gradle-launcher-6.5.jar org.gradle.launcher.GradleMain app:clean app:assemblerelease --stacktrace --info -b ClassNote/build.gradle
jenkins   204683  204645 99 11:26 ?        00:00:05 /usr/local/jdk1.8.0_271/bin/java -Xms256m -Xmx512m -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -cp /usr/local/gradle-6.5/lib/gradle-launcher-6.5.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 6.5

上文第三行的部分,说明gradle使用的堆内存最小256m,最大512m。这导致heapSize不足,打包失败

解决方法(通过xftp操作文件,比命令行更方便)
通过在/var/lib/jenkins/.gradle文件夹下,增加一个文件gradle.properties,内容为

org.gradle.jvmargs=-Xms2048m -Xmx2048m

即可修改gradle打包时的堆内存最小和最大都为2g,成功打包。

你可能感兴趣的:(jenkins,jenkins)