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 环境就完全配置好了,你可以放心地去跑通你的自动化构建流水线了!

相关推荐
Gl�ria3 分钟前
Linux 清理日志常用命令
linux·运维·服务器
linweidong33 分钟前
中科闻歌Java面试题及参考答案
java·python·大模型·提示词·ai agent·mcp·rag原理
OpenAnolis小助手39 分钟前
一句话看透 JVM,SysOM 诊断 Skill 新增 Java 应用诊断能力
java·开发语言·jvm·阿里云·操作系统控制台·sysom
ForteScarlet1 小时前
Kotlin 2.4.20 现已发布,新特性多不多?
android·java·开发语言·开源·kotlin·jetbrains
萧瑟余晖1 小时前
Java深入解析篇六十二之安全机制详解
java·开发语言
小刘在重生~1 小时前
Java 常用类|包装类 装箱拆箱、Integer 缓存面试题
java·python·缓存
Orange_sparkle2 小时前
Pi Agent vs LangGraph:从人机交互、企业 RAG 到持久化工作流的完整选型指南
java·网络·人机交互
j7~2 小时前
【Linux网络加餐(二)】《进程组,会话,控制终端,作业控制和守护进程》---详解
linux·运维·服务器·守护进程·会话·进程组·控制终端
名字还没想好☜2 小时前
Docker 数据卷实战:volume、bind mount、tmpfs 到底怎么选,数据持久化与权限坑
运维·docker·容器·kubernetes
天道jimmy2 小时前
VulnHub 系列:Prime,1
linux·运维·服务器