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

相关推荐
MaximusCoder2 小时前
等保测评命令——Centos Linux
linux·运维·经验分享·python·安全·centos
ノBye~2 小时前
Centos7.6 Docker安装redis(带密码 + 持久化)
java·redis·docker
黑臂麒麟2 小时前
openYuanrong:多语言运行时独立部署以库集成简化 Serverless 架构 & 拓扑感知调度:提升函数运行时性能
java·架构·serverless·openyuanrong
XiaoLeisj2 小时前
Android Jetpack 页面架构实战:从 LiveData、ViewModel 到 DataBinding 的生命周期管理与数据绑定
android·java·架构·android jetpack·livedata·viewmodel·databinding
⑩-2 小时前
为什么要用消息队列?使用场景?
java·rabbitmq
似水明俊德2 小时前
01-C#.Net-泛型-面试题
java·开发语言·面试·c#·.net
卷Java2 小时前
Linux服务器Docker部署OpenClaw:腾讯云/阿里云/VPS安装避坑指南
linux·运维·服务器
Allnadyy2 小时前
【C++项目】从零实现高并发内存池(一):核心原理与设计思路
java·开发语言·jvm
浑水摸鱼仙君2 小时前
SpringSecurity和Flux同时使用报未认证问题
java·ai·flux·springsecurity·springai