Java学习第一百零九部分——Jenkins(一)

发布于:2025-08-07 ⋅ 阅读:(22) ⋅ 点赞:(0)

目录

一、前言简介

二、核心价值与优势

三、关键概念

四、下载安装与配置

五、总结归纳概述


一、前言简介

       Jenkins 是一个开源的、基于 Java 的自动化服务器。它的核心使命是实现持续集成和持续交付。简单来说,Jenkins 是一个强大的工具,用于自动化软件开发过程中那些重复性的、容易出错的任务,示例如下:

  1. 构建: 编译源代码(如 Java、C++、Python)。
  2. 测试: 自动运行单元测试、集成测试等。
  3. 打包: 将代码打包成可部署的格式(如 JAR、WAR、Docker 镜像)。
  4. 部署: 将构建好的软件包自动部署到测试环境、预生产环境或生产环境。
  5. 报告: 收集构建和测试结果,生成报告,通知相关人员。

二、核心价值与优势

1. 持续集成: 每当开发人员将代码更改提交到版本控制系统(如 Git、SVN),Jenkins 可以自动触发一次构建和测试过程。这有助于尽早发现集成错误,提高软件质量。
2. 持续交付/部署: 在 CI 的基础上,进一步自动化部署流程,使得软件能够更快速、更可靠地发布到生产环境。
3. 自动化: 解放开发者手动执行繁琐任务的时间,让他们专注于更有价值的工作(如写代码、设计)。
4. 提高效率: 自动化流程大大缩短了从代码提交到产品上线的周期。
5. 提高质量: 频繁的自动化测试能快速捕获缺陷,防止问题累积。
6. 可视化: 提供直观的 Web 界面,展示构建历史、测试结果、控制台输出等,方便监控和排查问题。
7. 可扩展性: 这是 Jenkins 的一大亮点。它拥有**极其庞大且活跃的插件生态系统**(超过 1800 个插件)。这些插件使得 Jenkins 能够:

  • 集成几乎所有主流的版本控制系统(Git, SVN, Mercurial 等)。

  • 支持各种构建工具(Maven, Gradle, Ant, Make, npm 等)。

  • 与测试框架(JUnit, TestNG, Selenium 等)无缝协作。

  • 部署到各种环境(物理机、虚拟机、容器如 Docker、Kubernetes,云平台如 AWS、Azure、GCP)。

  • 集成通知工具(邮件、Slack、Teams 等)。

  • 支持各种项目类型(自由风格项目、Pipeline 等)。

8. 跨平台: 基于 Java 开发,可以在任何支持 Java 的平台上运行(Windows, Linux, macOS)。
9. 社区支持: 作为最老牌、最广泛使用的 CI/CD 工具之一,拥有庞大且活跃的社区,提供丰富的文档、教程和问题解答。

三、关键概念

  • 作业: Jenkins 中自动化任务的基本单位。一个作业定义了要执行的一系列步骤(如拉取代码、编译、测试、部署)。

  • 构建: 执行一次作业的过程称为一次构建。每次构建会产生结果(成功、失败、不稳定)和日志。

  • 节点/代理: Jenkins 可以在主服务器上执行任务,也可以通过代理节点将任务分发到其他机器上执行,实现分布式构建。

  • Pipeline: 现代 Jenkins 的核心。使用代码(通常是 Groovy 语法写在 `Jenkinsfile` 中)来定义整个构建、测试和部署流程。Pipeline 将多个阶段可视化地连接起来,提供了更强大、更灵活、更可维护的自动化能力。

  • 插件: 扩展 Jenkins 功能的模块。

四、下载安装与配置

一、准备工作
   Jenkins 基于 Java,需提前安装Java 11 或 17。

二、安装 Jenkins
Windows 系统
1. 下载安装包:官网下载:https://www.jenkins.io/download/](https://www.jenkins.io/download/ → 选择 Windows 版本。
2. 运行安装程序:双击 `.msi` 文件,按向导安装(建议保持默认路径)。
3. 启动服务:安装完成后自动启动 Jenkins 服务,访问 `http://localhost:8080`。

Linux 系统(Ubuntu/CentOS)
方法1:通过官方仓库安装(推荐)

# Ubuntu/Debian
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee \
  /usr/share/keyrings/jenkins-keyring.asc > /dev/null
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
  https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
  /etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt update
sudo apt install jenkins
# CentOS/RHEL
sudo wget -O /etc/yum.repos.d/jenkins.repo \
  https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
sudo yum install jenkins

方法2:直接运行 WAR 包(通用)

# 下载最新 WAR 包
wget https://get.jenkins.io/war-stable/latest/jenkins.war

# 运行(默认端口 8080)
java -jar jenkins.war --httpPort=9090  # 可自定义端口

启动服务 & 设置开机自启

sudo systemctl start jenkins
sudo systemctl enable jenkins  # 开机自启

macOS 系统

# 通过 Homebrew 安装
brew install jenkins-lts

# 启动服务
brew services start jenkins-lts

三、初始配置 Jenkins
1. 解锁 Jenkins访问 `http://localhost:8080`(或自定义端口)  从日志获取初始密码:

Linux:见下
 

sudo cat /var/lib/jenkins/secrets/initialAdminPassword


Windows:在安装目录的 `secrets/initialAdminPassword` 文件中查找。

2. 安装推荐插件:选择 **Install suggested plugins**(安装官方推荐插件集)。

3. 创建管理员账户:设置用户名、密码和邮箱(勿跳过!)。

4. 配置实例 URL:保持默认 `http://localhost:8080` 或按需修改。

四、基础安全配置
1. 开启全局安全  

  • 进入 Manage Jenkins > Security  

  • 勾选 Enable security → 选择 Logged-in users can do anything

2. 配置代理(可选) 

  •    若需访问外网下载插件:Manage Jenkins > Plugins > Advanced → 设置 HTTP 代理。

五、安装必备插件
进入 Manage Jenkins > Plugins > Available plugins 搜索安装:

插件名称 作用
Git 集成 Git 版本控制
Pipeline 核心流水线功能
Docker 构建/推送 Docker 镜像
Blue Ocean 现代化可视化流水线界面
Credentials 管理密钥(如 GitHub Token)

六、验证安装
1. 创建测试任务:  
   - 首页点击 New Item → 选择 Freestyle project → 在构建步骤添加 `echo "Hello Jenkins!"`  
   - 点击 Build Now,查看控制台输出是否成功。

常见问题解决
1. 端口冲突:  
   - 修改端口:编辑 `/etc/default/jenkins`(Linux)或 Windows 服务配置,更新 `HTTP_PORT=新端口`。

2. 插件安装失败:  
   - 更换更新中心镜像:  
     Manage Jenkins > Plugin Manager > Advanced** → 将 `Update Site` URL 替换为清华镜像:  
     https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

3. Java 版本不兼容:  
   - 确保使用 Java 11/17!

下一步建议

  • 创建第一个 Pipeline:在项目根目录添加 `Jenkinsfile`,用代码定义构建流程。  

  • 集成 Git 仓库:配置 Webhook 实现提交代码自动触发构建。  

  • 配置从节点(Agent):扩展构建能力至多台机器。

  • Jenkins 官方文档是终极指南 →Jenkins User Documentation

五、总结归纳概述

  • Jenkins 是 CI/CD 领域的基石工具。它通过强大的自动化能力和无与伦比的可扩展性,帮助开发团队实现快速、频繁且可靠的软件构建、测试和发布,是现代 DevOps 实践中不可或缺的一环。

  • Jenkins 就像一个不知疲倦的软件工厂机器人,自动完成代码从提交到上线过程中的所有脏活累活,让开发者更高效,软件质量更高。


网站公告

今日签到

点亮在社区的每一天
去签到