jenkins 构建java17遇到的问题

文章讲述了如何在特定环境下打包应用,确保使用指定的JDK版本。这包括在执行Maven命令时忽略测试并更新环境变量,以及在Docker容器中构建Java17项目时如何处理JDK版本冲突,通过修改MVN命令脚本和使用命令行而非Maven插件来运行Jenkins。此外,提到了将关键路径如Maven、JDK和仓库挂载到容器外,以保持持久化和一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 指定 jdk 版本打包
JAVA_HOME=/usr/java/jdk-17.0.5 mvn clean package -Dmaven.test.skip=true -U

这样执行命令不会改变系统给本身的环境变量

2.nohup 进程被杀死解决办法

source /etc/profile
export JENKINS_NODE_COOKIE=dontKillMe

3.docker 中使用 jenkins 构建 java17,jdk 版本冲突,不能在容器中直接修改 JAVA_HOME 否则会导致 jenkins 出问题,所以用了另一个方法,就是修改 mvn 命令的脚本,具体如下

JAVA_HOME=/usr/local/jdk/jdk-17.0.5
if [ -z "$JAVA_HOME" ] ; then
  JAVACMD="`\\unset -f command; \\command -v java`"
else
  JAVACMD="$JAVA_HOME/bin/java"
fi

同时在 jenkins 中构建的时候就不能使用 maven 插件,而是要使用命令行,除此之外还应该把 maven,jdk 还有仓库挂载出来,具体如下

docker run -u root -d --privileged=true -p 9090:8080 -p 10240:50000 \
-v /home/docker-data/jenkins-9090-2415:/var/jenkins_home \
-v /etc/localtime:/etc/localtime \
-v /usr/local/apache-maven-3.9.3:/usr/local/apache-maven-3.9.3 \
-v /home/mavenRep:/home/mavenRep \
-v /usr/local/jdk/jdk-17.0.5:/usr/local/jdk/jdk-17.0.5 \
-e TZ=Asia/Shanghai \
-e 'JAVA_OPTS=-Duser.timezone=Asia/Shanghai' \
--name jenkins_9090 jenkins/jenkins:2.415
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值