☰
从零搞懂 Jenkins:一份能照做的 CI/CD 入门笔记
2026/10/10 5:57:24 网站建设 项目流程

每次发版都手动打包、传服务器、重启,还生怕手抖删错东西 —— 这类重复活,就该交给工具。Jenkins 干的就是这件事。

Jenkins 是什么

Jenkins 是一个开源的持续集成(CI)/ 持续交付(CD)工具。核心作用一句话:把 "构建、测试、打包、部署" 这些重复工作自动化,你提交代码或按计划触发时,它自动跑完整条流水线。

先记住五个核心概念,后面全程绕不开:

表格

概念是什么
Job(任务)一次要执行的构建工作,Jenkins 的最小单元
Pipeline(流水线)把多个步骤串成一条自动化流程,Jenkins 2.x 之后的主流玩法
Node / Agent(节点)实际执行任务的机器,可以是本机 Master,也可以是远程机器
Master(主节点)负责调度和管理界面,自己也能执行任务
Workspace(工作区)每次构建时拉取代码、存放构建产物的目录

三步装好它

环境要求

  • Java 8+(推荐 11 或 17)
  • 内存至少 2GB(推荐 4GB)
  • Windows /macOS/ Linux / Docker 都支持

三种安装方式,挑一个顺手的

方式一:直接下 war 包(最直观)

wget https://get.jenkins.io/war-stable/latest/jenkins.war java -jar jenkins.war --httpPort=8080

方式二:Docker(推荐,不脏系统)

docker run -d -p 8080:8080 -p 50000:50000 \ -v jenkins_home:/var/jenkins_home \ --name jenkins jenkins/jenkins:lts

方式三:Linux 原生包

sudo apt install jenkins # Debian/Ubuntu sudo systemctl restart jenkins

初始化(第一次启动必做)

  1. 访问http://localhost:8080
  2. 取初始密码:看启动日志,或直接打开/var/lib/jenkins/secrets/initialAdminPassword
  3. 创建管理员账号
  4. 选安装推荐插件(Install Suggested Plugins)
  5. 设置实例 URL

进来后,先认两个地方

系统管理(Manage Jenkins)

  • 系统配置:全局环境变量、JDK / Git / Maven 等工具路径、邮件通知
  • 插件管理:安装 / 更新 / 卸载插件
  • 凭据(Credentials):存 Git 密码、SSH Key、Token 等敏感信息,供构建时调用
  • 节点管理:添加和管理执行节点

凭据怎么加(重点:别把密码写死在脚本里)

常见凭据类型:

表格

类型用来存什么
Username with passwordGit 用户名密码
SSH Username with private keySSH 登录信息
Secret textToken / API Key

添加路径:Manage Jenkins → Credentials → Global → Add Credentials。

建任务的两种方式

方式一:Freestyle Project(自由风格,入门友好)

全程界面点选,适合简单场景:

  • 源码管理:填 Git 仓库 + 凭据
  • 构建触发器:定时(cron)、轮询 SCM、或 Webhook 钩子触发
  • 构建步骤:Execute shell / Windows batch、调用 Maven 等

方式二:Pipeline(流水线,现代主流,建议重点学)

用代码(Jenkinsfile)定义整个流程,可以版本化、可复用 —— 这才是 CI/CD 的长期方向。

Pipeline 语法速通

Jenkinsfile 支持两种写法。

声明式(Declarative,推荐入门)

pipeline { agent any stages { stage('拉取代码') { steps { echo 'git clone...' checkout scm } } stage('构建') { steps { sh 'mvn clean package' } } stage('测试') { steps { sh 'mvn test' } } stage('部署') { steps { echo 'deploy to server' } } } }

脚本式(Scripted)

用node {}包裹,更灵活但也更复杂:

node { stage('构建') { sh 'mvn clean package' } }

常用指令速查

表格

指令作用示例
agent指定在哪执行agent { label 'slave1' }
stages / stage阶段划分stage('Build')
steps具体步骤sh 'ls'
environment环境变量environment { FOO = 'bar' }
when条件执行when { branch 'main' }
post无论成败都执行的分支post { always { ... } }
parameters参数化构建parameters { string(name:'BRANCH') }
credentials引用凭据credentials('my-cred')

常用插件(按需装,别全装)

  • Git:源码管理(默认带)
  • Pipeline:流水线支持(默认带)
  • Blue Ocean:更友好的可视化流水线界面
  • Credentials Binding:把凭据注入构建环境
  • Email Extension:构建结果邮件通知
  • Gitee / GitLab:国内 Git 平台集成,支持 Webhook 触发
  • Docker Pipeline:在流水线里调用 Docker
  • Publish Over SSH:把构建产物发布到远程服务器

Webhook:让 "自动" 真正自动起来

原理很简单 —— 让 Git 平台在你 push 代码时主动通知 Jenkins:

  1. Jenkins 侧装好对应的 Git 插件(如 Gitee / GitHub)
  2. 在 Job 配置中添加触发方式:"Gitee webhook 触发构建"
  3. 在 Job 设置里生成一个 Webhook URL 和 Secret Token
  4. 到代码仓库平台配置 Webhook,URL 填 Jenkins 地址,保存

之后每次 push 代码,Jenkins 自动开始构建,不用你动手。

定时构建:cron 语法

在触发器里写 cron 表达式:

# 每天凌晨 2 点 H 2 * * * # 每 30 分钟 H/30 * * * * # 周一到周五每天 9 点 H 9 * * 1-5

这里的H表示 "哈希",作用是把同一时刻的任务错开,别让一堆构建挤在整点同时跑。

完整学习路线

  1. 入门:装好 Jenkins → 手动建一个 Freestyle Job → 学会查构建日志、定位失败
  2. 上道:Git 关联 + Webhook 自动触发 + 邮件通知
  3. 进阶:把所有 Job 迁移成 Pipeline + Jenkinsfile,跑通 CI 全流程
  4. 深入:多节点分布式构建、凭据体系规范化、参数化构建、与 Docker / K8s 结合
  5. 生产:集成代码质量管理(SonarQube)、制品仓库(Nexus)、CD 自动化部署

六个过来人踩过的坑

  • 密码别硬编码:密码、Token 一律走 Credentials
  • 日志是救命稻草:构建失败先看 Console Output 尾部,多半能定位
  • 定时任务错峰:大型构建别挤在同一时刻,用H哈希错开
  • 排查时保留工作区:勾选 Keep workspace,别每次都清空
  • 升级前先备份:升级前备份/var/lib/jenkins,这是老坑了
  • 不会写 Jenkinsfile?:直接用 UI 里的 "Pipeline Syntax" 生成器,对着选项填就能生成代码,少手写错误

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询