09_Jenkins安装JDK环境

09_如何在Jenkins容器中手动配置特定版本的JDK环境

在使用 Jenkins 进行 Java 项目的持续集成与部署时,正确配置 JDK 环境是至关重要的一步。本文将详细说明为什么需要单独配置 JDK,以及在 Docker 部署环境下,如何优雅地手动安装和配置指定版本的 JDK。


一、 为什么 Jenkins 需要配置特定的 JDK 环境?

在使用 Jenkins 中的 Maven 构建打包项目时,必须确保 Jenkins 拥有与该项目匹配的 JDK 版本,否则极大概率会导致编译失败。

因为 Maven 本身是一个基于 Java 的工具,它的运行和打包动作都强依赖于 JDK。例如:

假设你的某个项目是基于 JDK 8 开发的:

而你的 Jenkins 中目前默认使用的maven可能是较高版本的 JDK,例如使用 Maven 3.9.11 进行构建:

此时,如果直接使用默认环境进行 Maven 打包,可能会因为版本不兼容而报错。因此,我们需要在 Jenkins 中明确为该项目安装并指定一套 JDK 8 的运行环境。


二、 为什么推荐"手动安装"而不是"自动安装"?

在 Jenkins 的全局工具配置中,虽然提供了"自动安装(Install automatically)" JDK 的选项,但实际操作时你会发现,它通常会提示需要注册并登录 Oracle 账号才能下载。

为了避开繁琐的账号注册和网络下载限制,在企业实战中,我们通常强烈推荐采用手动下载并挂载安装的方式。


三、 手动安装 JDK 的完整步骤(基于 Docker 部署)

前提条件 :如果你是通过 Docker 部署的 Jenkins,请确保你已经将容器内的目录(如 /var/jenkins_home)通过数据卷挂载到了宿主机本地。

1. 确认 Docker 的挂载配置

以下是一个标准的 Jenkins docker-compose.yml 挂载示例,请确认你的配置类似如下:

yaml 复制代码
version: '3.8'
services:
  jenkins:
    image: jenkins/jenkins:lts
    container_name: jenkins
    user: root
    ports:
      - "8785:8080"
      - "50000:50000"
    volumes:
      # 将宿主机的 /root/docker/jenkins 挂载到容器内的 /var/jenkins_home
      - /root/docker/jenkins:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
      - /usr/bin/docker:/usr/bin/docker
    restart: unless-stopped

2. 在宿主机下载并解压 JDK

我们以安装 JDK 8 为例,为了加快下载速度,这里推荐使用华为云的开源镜像站。在宿主机上依次执行以下命令:

Bash

复制代码
# 1. 进入宿主机的 jenkins 挂载目录(如果里面没有 tools 文件夹,就新建一个)
mkdir -p /root/docker/jenkins/tools
cd /root/docker/jenkins/tools

# 2. 使用 wget 下载华为云的 JDK 8 压缩包
wget [https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz](https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz)

# 3. 解压下载好的压缩包
tar -zxvf jdk-8u202-linux-x64.tar.gz

# 4. (可选) 删除压缩包以节省磁盘空间
rm -f jdk-8u202-linux-x64.tar.gz

# 5. 查看解压出来的文件夹内容
ls -l

执行完毕后,你应该能看到解压出来的 jdk1.8.0_202 文件夹:

Plaintext

复制代码
[root@your-server tools]# ls -l
total 189512
drwxr-xr-x 4 root root   4096 Mar 17 10:32 hudson.model.JDK
drwxr-xr-x 3 root root   4096 Jul  8 2025 hudson.tasks.Maven_MavenInstallation
drwxr-xr-x 7  10  143   4096 Dec 16 2018 jdk1.8.0_202
drwxr-xr-x 3 root root   4096 Jul  8 2025 jenkins.plugins.nodejs.tools.NodeJSInstallation

3. 确定容器内部的绝对路径

这一步非常关键!虽然我们在宿主机的 /root/docker/jenkins/tools/jdk1.8.0_202 目录放好了 JDK,但在 Jenkins 容器内部 看来,由于挂载关系(宿主机的 /root/docker/jenkins 对应容器的 /var/jenkins_home),这个 JDK 所在的绝对路径其实是:

👉 /var/jenkins_home/tools/jdk1.8.0_202

记好这个路径,我们马上要在界面上填入它。


四、 在 Jenkins 界面中配置 JDK 路径

万事俱备,只欠东风。最后一步就是在 Jenkins 系统中关联我们刚才下载好的 JDK 环境:

  1. 回到 Jenkins 的网页管理界面。

  2. 依次点击左侧菜单栏的 Manage Jenkins (系统管理) -> Tools (全局工具配置)。

  3. 找到 JDK 安装 (JDK installations) 区域,点击新增(如果已有就展开修改),给这个配置起个名字(例如 jdk8)。

  4. 务必取消勾选 "Install automatically (自动安装)" 选项。

  5. 在显示出来的 JAVA_HOME 这一栏中,精准填入刚才确定的容器内绝对路径: /var/jenkins_home/tools/jdk1.8.0_202

  6. 滑动到页面最底部,点击 Save (保存)。

    如:

/jenkins_home/tools/jdk1.8.0_202`

  1. 滑动到页面最底部,点击 Save (保存)。

    如:

    外链图片转存中...(img-yQp47Ogy-1773729911267)

至此,针对特定项目的 JDK 8 环境就完全配置好了,你可以放心地去跑通你的自动化构建流水线了!

相关推荐
雪落漂泊2 分钟前
Linux基础开发工具(三)gcc/g++与make/makefile篇
linux·运维·服务器
Sayai3 分钟前
Neo4j 社区版高可用实战:DRBD 块级复制 + Keepalived 虚拟 IP 冷备切换(附启停 SOP 与脑裂防范)
运维·neo4j·keepalived·高可用·drbd
爱吃辣椒的小豆豆11 分钟前
Linux-sshd-实战-白名单与跳板机
linux·运维·服务器
随风爱学习16 分钟前
JAVA学习之异常
java
m0_6399069418 分钟前
HashMap:哈希扰动、扩容源码、红黑树转换、并发问题
java·算法·哈希算法
Roll圈圈25 分钟前
长链接太丑影响转化率?这个短链工具让你的推广链接更专业
java
强哥聊算力31 分钟前
《算力江湖·国产GPU突围:摩尔线程故事》第四集:从图形到AI:摩尔线程为什么必须冲进大模型赛道?
运维·服务器·人工智能·ai·gpu算力
神魔皆以血嗜32 分钟前
Java 存储金额
java·后端
梅梅绵绵冰1 小时前
Nginx反向代理
运维·nginx
Python自动化直播1 小时前
自动化笔记:素材管理、命名、轮换的几条土办法
linux·运维·数据库