DukeDuke
主页
项目文档
技术文档
  • 单机版
  • 微服务
  • 代办项目
  • 优鲜项目
项目管理
关于我们
主页
项目文档
技术文档
  • 单机版
  • 微服务
  • 代办项目
  • 优鲜项目
项目管理
关于我们
  • 技术文档

    • 网络原理

      • 交换机
      • 路由器
      • TCP/IP协议
      • HTTP 与 HTTPS
    • 软件架构

      • 什么是软件架构
      • 分层架构
      • 微服务架构
      • 事件驱动架构
      • 领域驱动设计(DDD)
      • 架构图
      • 高并发系统
    • Vue3

      • Vue3简介
      • Vue3响应式系统
      • Vue3组合式API
      • Vue3生命周期
      • Vue3模板语法
      • Vue3组件系统
      • Vue3 路由系统
      • Vue3 状态管理
      • Vue3 性能优化
      • Vue3 TypeScript 支持
      • Vue3 项目实战
      • VUE 面试题大全
      • Node.js 安装
    • JAVA

      • JVM

        • 认识JVM
        • JVM类加载器
        • 运行时数据区
        • 执行引擎
        • 本地方法接口
        • 本地方法库
        • JVM垃圾回收
        • JVM性能监控
        • JVM调优
      • 设计模式
        • 单例模式
        • 工厂模式
        • 策略模式
        • 适配器模式
        • 建造者模式
        • 原型模式
        • 装饰器模式
        • 代理模式
        • 外观模式
        • 享元模式
        • 组合模式
        • 桥接模式
      • Java多线程

        • Java 线程基础详解
        • Java 线程池详解
        • Java ThreadLocal 详解
        • Java volatile 详解
        • Java 线程间通信详解
        • Java 线程安全详解
        • Java 线程调度详解
        • Java 线程优先级详解

        • Java 线程中断详解
        • Java 线程死锁详解
      • Java反射
      • Java 面试题

        • Java 基础概念面试题
        • Java 面向对象编程面试题
        • Java 集合框架面试题
        • Java 多线程与并发面试题
        • JVM 与内存管理面试题
        • Java I/O 与 NIO 面试题
        • Java 异常处理面试题
        • Java 反射与注解面试题
        • Java Spring 框架面试题
        • Java 数据库与 JDBC 面试题
        • Java 性能优化面试题
        • Java 实际项目经验面试题
        • Java 高级特性面试题
        • Java 面试准备建议
    • Python

      • Python简介
      • Python安装
      • Python hello world
      • Python基础语法
      • Python数据类型
      • Python数字
      • Python字符串
      • Python列表
      • Python元组
      • Python字典
      • Python日期时间
      • Python文件操作
      • Python异常处理
      • Python函数
      • Python类
      • Python模块
      • Python包
      • Python多线程
      • Python面向对象
      • Python爬虫
      • Django web框架
      • Python 面试题

        • Python 面试题导航
        • Python 基础概念
        • Python 面向对象编程
        • Python 数据结构
        • Python 高级特性
        • Python 框架
        • Python 性能优化
        • Python 项目经验
    • Spring

      • Spring
      • Springboot
      • Spring Security 安全框架
      • SpringBoot 中的事件详解
      • SpringBoot 中的定时任务详解
      • SpringBoot 自动装配原理与源码解释
    • Mybatis

      • Mybatis
      • Mybatis-Plus
    • 数据库

      • Redis

        • Redis简介
        • Redis(单机)安装
        • Redis配置
        • Redis数据结构
        • RDB、AOF 和混合持久化机制
        • Redis内存管理
        • Redis缓存一致性
        • Redis缓存穿透
        • Redis缓存击穿
        • Redis缓存雪崩
        • Redis Lua脚本
        • Redis主从复制
        • Redis哨兵模式
        • Redis集群
        • Redis数据分片
        • Redis CPU使用率过高
        • Redis面试题
      • MySQL

        • MySQL简介
        • MySQL安装
        • MySQL配置
        • MYSQL日常维护
        • MYSQL优化-慢查询
        • MYSQL优化-索引
        • MYSQL数据库设计规范
    • 消息队列

      • RocketMQ
      • Kafka
      • RabbitMQ
      • 消息队列面试题
    • 微服务

      • SpringCloud 微服务
      • Eureka 注册中心
      • Nacos 注册中心
      • Gateway 网关
      • Feign 服务调用
      • Sentinel 限流 与 熔断
      • Seata 分布式事务
      • CAP 理论
      • Redis 分布式锁
      • 高并发系统设计
    • ELK日志分析系统

      • Elasticsearch 搜索引擎
      • Logstash 数据处理
      • Kibana 可视化
      • ELK 实战
    • 开放API

      • 开放API设计
      • 开放API示例项目
    • 人工智能

      • 人工智能简介
      • 机器学习

      • 深度学习

      • 自然语言处理

      • 计算机视觉

        • CUDA与cuDNN详细安装
        • Conda 安装
        • Pytorch 深度学习框架
        • yolo 目标检测
        • TensorRT 深度学习推理优化引擎
        • TensorFlow 机器学习
        • CVAT 图像标注
        • Windows 下安装 CUDA、cuDNN、TensorRT、TensorRT-YOLO 环境
        • Windows10+CUDA+cuDNN+TensorRT+TensorRT-YOLO 部署高性能YOLO11推理
    • 大数据

      • 大数据简介
      • Hadoop 数据存储
      • Flume 数据采集
      • Sqoop 数据导入导出
      • Hive 数据仓库
      • Spark 数据处理
      • Flink 数据处理
      • Kafka 数据采集
      • HBase 数据存储
      • Elasticsearch 搜索引擎
    • 图像处理

      • 图像处理简介
      • 医学图像web呈现
      • 医学图像处理
      • 切片细胞分离问题
    • 服务器&运维

      • Linux 系统

        • Linux 系统管理
        • Linux 网络管理
        • Linux 文件管理
        • Linux 命令大全
      • Nginx Web 服务器

        • Nginx 安装 与 配置
        • Nginx 负载均衡
        • Nginx SSL证书配置
        • Nginx Keepalived 高可用
      • Docker 容器

        • Docker 简介
        • Docker 安装与配置
        • Docker 命令
        • Docker 部署 Nginx
        • Docker 部署 MySQL
        • Docker 部署 Redis
      • 服务器

        • 塔式服务器
        • 机架式服务器
        • 刀片服务器
      • Git 版本控制
      • Jenkins 持续集成
      • Jmeter 性能测试
      • Let's Encrypt 免费SSL证书
    • 简历

      • 项目经理简历
      • 开发工程师简历

Jenkins 下载安装与使用

目录

  • 简介
  • 系统要求
  • 下载安装
  • 初始配置
  • 基本使用
  • 插件管理
  • 构建项目
  • 常见问题

简介

Jenkins 是一个开源的自动化服务器,用于自动化构建、测试和部署软件项目。它支持多种编程语言和构建工具,是持续集成/持续部署(CI/CD)的核心工具。

主要特性

  • 支持多种编程语言和构建工具
  • 丰富的插件生态系统
  • 分布式构建支持
  • 实时构建状态监控
  • 详细的构建报告和日志

系统要求

最低要求

  • Java: JDK 8 或更高版本
  • 内存: 256MB 可用内存
  • 磁盘空间: 1GB 可用空间

推荐配置

  • Java: JDK 11 或 JDK 17 (LTS 版本)
  • 内存: 4GB 或更多
  • 磁盘空间: 10GB 或更多
  • 操作系统: Windows 10/11, Linux, macOS

下载安装

方法一:使用安装包(推荐)

Windows 安装

  1. 访问 Jenkins 官网
  2. 下载 Windows 安装包 (.msi 文件)
  3. 双击运行安装程序
  4. 按照安装向导完成安装
  5. 安装完成后,Jenkins 将作为 Windows 服务自动启动

Linux 安装

# Ubuntu/Debian
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo apt-key add -
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get 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

方法二:使用 Docker

# 拉取 Jenkins 镜像
docker pull jenkins/jenkins:lts

# 运行 Jenkins 容器
docker run -d \
  --name jenkins \
  -p 8080:8080 \
  -p 50000:50000 \
  -v jenkins_home:/var/jenkins_home \
  jenkins/jenkins:lts

方法三:使用 WAR 文件

  1. 下载 Jenkins WAR 文件
  2. 确保已安装 Java
  3. 运行命令:
java -jar jenkins.war --httpPort=8080

初始配置

1. 启动 Jenkins

安装完成后,Jenkins 通常会自动启动。如果没有,可以手动启动:

Windows:

# 启动服务
net start jenkins

# 或通过服务管理器启动
services.msc

Linux:

# 启动服务
sudo systemctl start jenkins
sudo systemctl enable jenkins

# 检查状态
sudo systemctl status jenkins

2. 访问 Jenkins

  1. 打开浏览器,访问 http://localhost:8080
  2. 等待 Jenkins 初始化完成

3. 获取初始管理员密码

Windows:

C:\Program Files\Jenkins\secrets\initialAdminPassword

Linux:

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

4. 安装推荐插件

  1. 输入初始管理员密码
  2. 选择"安装推荐的插件"
  3. 等待插件安装完成

5. 创建管理员账户

  1. 设置管理员用户名和密码
  2. 配置 Jenkins URL(通常保持默认)
  3. 完成初始设置

基本使用

1. 创建第一个任务

  1. 点击"新建任务"
  2. 输入任务名称
  3. 选择任务类型(如"自由风格的软件项目")
  4. 点击"确定"

2. 配置构建

在任务配置页面中:

源代码管理:

  • 选择 Git 或 SVN
  • 输入仓库 URL
  • 配置分支

构建触发器:

  • 轮询 SCM
  • 定时构建
  • 远程触发

构建步骤:

  • 执行 Shell 脚本
  • 执行 Windows 批处理
  • 调用 Maven 目标
  • 调用 Gradle 脚本

构建后操作:

  • 发送邮件通知
  • 归档构建产物
  • 发布测试报告

3. 执行构建

  1. 在任务页面点击"立即构建"
  2. 查看构建进度
  3. 查看构建日志和结果

插件管理

安装插件

  1. 进入"管理 Jenkins" > "插件管理"
  2. 选择"可选插件"标签
  3. 搜索需要的插件
  4. 勾选插件并点击"安装"

常用插件推荐

  • Git Integration: Git 集成
  • Pipeline: 流水线支持
  • Blue Ocean: 现代化界面
  • Credentials Binding: 凭据管理
  • SSH Agent: SSH 代理
  • Docker Pipeline: Docker 支持
  • SonarQube Scanner: 代码质量分析
  • JUnit: 单元测试报告

更新插件

  1. 进入"管理 Jenkins" > "插件管理"
  2. 选择"可更新"标签
  3. 选择要更新的插件
  4. 点击"下载并在重启后安装"

构建项目

1. 自由风格项目

适用于简单的构建任务:

// 构建步骤示例
echo "开始构建..."
mvn clean install
echo "构建完成"

2. 流水线项目

使用 Jenkinsfile 定义构建流程:

pipeline {
    agent any

    stages {
        stage('检出代码') {
            steps {
                checkout scm
            }
        }

        stage('构建') {
            steps {
                sh 'mvn clean compile'
            }
        }

        stage('测试') {
            steps {
                sh 'mvn test'
            }
            post {
                always {
                    junit '**/target/surefire-reports/*.xml'
                }
            }
        }

        stage('部署') {
            steps {
                sh 'mvn deploy'
            }
        }
    }

    post {
        always {
            cleanWs()
        }
    }
}

3. 多分支流水线

自动为每个分支创建构建任务:

  1. 创建多分支流水线项目
  2. 配置分支源(Git、SVN 等)
  3. 在代码仓库根目录添加 Jenkinsfile
  4. Jenkins 自动扫描分支并创建任务

安全配置

1. 用户管理

  1. 进入"管理 Jenkins" > "管理用户"
  2. 创建新用户账户
  3. 设置用户权限

2. 权限配置

  1. 进入"管理 Jenkins" > "全局安全配置"
  2. 启用安全选项
  3. 配置授权策略(如"基于角色的策略")

3. 凭据管理

  1. 进入"管理 Jenkins" > "管理凭据"
  2. 添加 SSH 密钥、用户名密码等凭据
  3. 在构建任务中使用凭据

监控和维护

1. 系统监控

  • 查看系统信息:管理 Jenkins > 系统信息
  • 查看系统日志:管理 Jenkins > 系统日志
  • 监控磁盘使用情况

2. 备份和恢复

# 备份 Jenkins 数据
tar -czf jenkins_backup.tar.gz /var/lib/jenkins

# 恢复 Jenkins 数据
tar -xzf jenkins_backup.tar.gz -C /

3. 性能优化

  • 定期清理构建历史
  • 配置构建保留策略
  • 使用分布式构建
  • 优化插件使用

常见问题

1. Jenkins 无法启动

问题: Jenkins 服务启动失败 解决方案:

  • 检查 Java 版本是否兼容
  • 检查端口是否被占用
  • 查看错误日志

2. 插件安装失败

问题: 插件下载或安装失败 解决方案:

  • 检查网络连接
  • 更新 Jenkins 版本
  • 手动下载插件文件

3. 构建失败

问题: 构建任务执行失败 解决方案:

  • 查看构建日志
  • 检查依赖项
  • 验证构建脚本

4. 内存不足

问题: Jenkins 运行缓慢或崩溃 解决方案:

  • 增加 JVM 堆内存
  • 清理构建历史
  • 优化构建配置

5. 权限问题

问题: 无法访问文件或执行命令 解决方案:

  • 检查文件权限
  • 配置用户权限
  • 使用适当的凭据

最佳实践

1. 项目组织

  • 使用有意义的项目名称
  • 按团队或功能分组
  • 使用视图组织项目

2. 构建优化

  • 使用并行构建
  • 缓存依赖项
  • 优化构建脚本

3. 安全考虑

  • 定期更新 Jenkins
  • 使用 HTTPS
  • 限制用户权限
  • 定期备份数据

4. 监控告警

  • 配置构建失败通知
  • 监控系统资源
  • 设置健康检查

相关资源

  • Jenkins 官方文档
  • Jenkins 插件中心
  • Jenkins 社区
  • Jenkins 最佳实践

最后更新时间: 2024 年

最近更新:: 2025/8/14 09:20
Contributors: Duke
Prev
Git 版本控制
Next
Jmeter 性能测试