Centos 安装Jenkins

Jenkins 的本质就是一个"脚本执行器 + 监控平台 + 插件容器,它的能力几乎完全由插件决定。所以,学习 Jenkins 的过程,其实就是学习怎么根据业务场景选择、配置和使用插件的过程。

下载安装jdk

javascript 复制代码
# 输出x86_64:表示这是一个 64 位的 x86 系统。
uname -m

Java Downloads | Oraclehttps://www.oracle.com/java/technologies/downloads/

这是我的安装路径

配置maven 和jdk21环境变量

javascript 复制代码
export JAVA_HOME=/usr/local/share/jdk-21.0.7/
export MAVEN_HOME=/usr/local/share/maven-3.9.6/

export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
javascript 复制代码
source /etc/profile

java -version
javascript 复制代码
# Jenkins 启动会去/usr/bin/ 找可在执行java命令

sudo ln -s /usr/local/share/jdk-21.0.7/bin/java /usr/bin/java
sudo ln -s /usr/local/share/jdk-21.0.7/bin/javac /usr/bin/javac

下载安装 Jenkins Linuxhttps://www.jenkins.io/doc/book/installing/linux/#red-hat-centos

javascript 复制代码
# 下载 Jenkins 官方 YUM 仓库配置文件并保存到 /etc/yum.repos.d/jenkins.repo
# 这个文件包含了 Jenkins 软件包的仓库地址信息,使得 yum 可以从这个源安装或更新 Jenkins
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

# 导入 Jenkins 官方 GPG 公钥,用于验证下载的软件包是否被篡改
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key

# 更新现有的所有软件包到最新版本,确保系统中的所有软件都是最新的
sudo yum upgrade

# 安装Jenkins 运行所需的 Java 环境 java-21-openjdk
sudo yum install fontconfig java-21-openjdk

# 安装 Jenkins 软件包
sudo yum install jenkins

# 当修改了服务文件或者添加了新的服务后,需要执行此命令使更改生效
sudo systemctl daemon-reload
javascript 复制代码
# 启动服务
sudo systemctl start jenkins

# 检查状态
sudo systemctl status jenkins

# 开机自启
sudo systemctl enable jenkins

页面还是挺友好的!

踩坑!

  1. jdk版本过低 ,jdk8肯定是不支持最新的jenkins,需要升级jdk,按照官网是使用jdk21

  2. jenkins 启动找不到java 可执行的命令,就是全局变量设置不生效

为什么 /etc/profile 设置对 systemd 服务无效?

/etc/profile 及其相关的脚本(例如 ~/.bash_profile, ~/.bashrc 等)主要用于配置用户登录 shell 的环境。而 systemd 启动的服务并不通过这些脚本初始化它们的环境,因此这些环境变量不会自动应用到 systemd 管理的服务中。

查看jenkins 启动shell 脚本

其中:

javascript 复制代码
infer_java_cmd() {
    if [ -n "${JENKINS_JAVA_CMD}" ] && [ -x "${JENKINS_JAVA_CMD}" ]; then
        return 0
    fi

    if [ -n "${JAVA_HOME}" ] && [ -x "${JAVA_HOME}/bin/java" ]; then
        JENKINS_JAVA_CMD="${JAVA_HOME}/bin/java"
        return 0
    fi

    JENKINS_JAVA_CMD="$(command -v java)" || return "$?"
}


解释:
功能:推断要使用的 java 可执行文件路径。
优先顺序:
环境变量 JENKINS_JAVA_CMD 显式指定
使用 JAVA_HOME/bin/java
使用系统 PATH 中的 java(即 /usr/bin/java)

所以为了开头 创建2个软链接 指向/usr/bin/
  1. maven 安装时记得修改setting文件里本地仓库地址和国内镜像

4.端口8080被占用问题

修改jenkins 的端口, 还是修改启动shell脚本,开头加一行 export JENKINS_PORT=9090

问题:Jenkins 使用 JDK 21,而项目是使用 JDK 8 编写的代码,这样编译会不会出问题?

答:

Jenkins 本身是一个 Java Web 应用,它运行时使用的 JDK(即 JENKINS_JAVA_CMD 或 JAVA_HOME)决定了 Jenkins 运行环境的版本,比如你使用的是 JDK 21。但你的项目代码在 Jenkins 中是如何被构建的,取决于你使用的工具和配置,比如Maven xml

javascript 复制代码
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
    </configuration>
</plugin>
相关推荐
spencer_tseng1 小时前
Redis + Nacos.bat
java·windows·dos
零涂毕业设计2 小时前
毕业设计模块开发-OLED显示屏(IIC协议0.96寸)STM32 ESP32 FPGA Linux驱动免费分享
linux·stm32·单片机·嵌入式·esp32·fpga·oled
troyzhxu2 小时前
列表查询的 GraphQL —— 一行代码终结你的 if-else 地狱!
java·springboot·graphql
tedcloud1232 小时前
OmniRoute怎么部署?开源AI模型路由平台Linux部署教程
linux·服务器·人工智能·开源·音视频
SakitamaX2 小时前
LVS(Linux Virtual Server)概念详解
linux·运维·lvs
小张同学a.3 小时前
Linux系统管理
linux·运维
孫治AllenSun3 小时前
【DataX】生产环境搭建DataX集群案例
java·开发语言·jvm
阿龙的工作记录3 小时前
深入理解Linux设备驱动模型
linux·嵌入式硬件·工作记录
代码村新手3 小时前
Linux的基本指令
linux·运维·服务器
好好沉淀4 小时前
@NotBlank(message = “{xxx}“) 注解中花括号的含义
java