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>
相关推荐
Pocker_Spades_A1 分钟前
飞算JavaAI家庭记账系统:从收支记录到财务分析的全流程管理方案
java·开发语言
33255_40857_280596 分钟前
掌握分页艺术:MyBatis与MyBatis-Plus实战指南(10年Java亲授)
java·mybatis
Ashlee_code22 分钟前
香港券商智能櫃台系統技術解決方案——融合跨境清算與AI風控,助力券商把握滬港雙市爆發機遇**
java·科技·金融·重构·架构·系统架构·php
蚰蜒螟33 分钟前
Spring 和 Lettuce 源码分析 Redis 节点状态检查与失败重连的工作原理
java·redis·spring
正在努力的小河35 分钟前
Linux设备树简介
linux·运维·服务器
荣光波比36 分钟前
Linux(十一)——LVM磁盘配额整理
linux·运维·云计算
小张快跑。37 分钟前
Tomcat下载、安装及配置详细教程
java·服务器·tomcat
神仙别闹1 小时前
基于 JSP+Mysql实现MVC房屋租赁系统
java·mysql·mvc
m0_521329031 小时前
java-单元测试
java
LLLLYYYRRRRRTT1 小时前
WordPress (LNMP 架构) 一键部署 Playbook
linux·架构·ansible·mariadb