1. 环境准备:安装Java环境
Jenkins是基于Java的自动化服务器,需先安装Java运行时环境(JRE)。在Debian系统中,推荐使用OpenJDK 11(兼容大多数项目),通过以下命令安装:
sudo apt update
sudo apt install openjdk-11-jdk
# 验证安装是否成功
java -version
确保输出显示Java版本为11或更高,否则Jenkins无法正常启动。
2. 安装Jenkins:添加仓库与启动服务
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt update
sudo apt install jenkins
sudo systemctl enable jenkins
sudo systemctl start jenkins
# 检查服务状态(应为“active (running)”)
sudo systemctl status jenkins
3. 初始配置:解锁与插件安装
/var/lib/jenkins/secrets/initialAdminPassword文件中)。通过浏览器访问http://<服务器IP>:8080,输入密码完成解锁。4. 配置Jenkins:安全与凭据管理
5. 创建自动化构建任务:Pipeline项目
my-app-ci),选择“Pipeline”类型,点击“OK”。https://github.com/user/repo.git);main,用于监听主分支的代码变更)。Jenkinsfile,推荐,便于版本控制)。以下是一个典型的Java项目Pipeline脚本(声明式语法):pipeline {
agent any // 使用任意可用节点执行任务
tools {
maven 'Maven 3.6.3' // 配置Maven工具(需提前在Jenkins中安装)
jdk 'JDK 11' // 配置JDK工具(需提前在Jenkins中安装)
}
stages {
stage('Checkout') {
steps {
checkout scm // 拉取代码仓库的最新代码
}
}
stage('Build') {
environment {
MAVEN_OPTS = "-Dmaven.repo.local=${env.WORKSPACE}/.m2" // 配置Maven本地仓库缓存
}
steps {
sh 'mvn -B clean package' // 执行Maven编译与打包(-B表示批处理模式)
}
}
stage('Test') {
parallel {
stage('Unit Test') {
steps {
junit '**/target/surefire-reports/*.xml' // 收集单元测试报告
}
}
stage('Integration Test') {
steps {
sh 'mvn verify -DskipUnitTests' // 执行集成测试(跳过单元测试)
}
}
}
}
stage('Deploy') {
when {
expression { params.DEPLOY_ENV != 'prod' } // 仅非生产环境执行部署(通过参数控制)
}
steps {
sshPublisher( // 通过SSH将构建产物部署到目标服务器
publishers: [
transfers: [
sshTransfer(
execCommand: "/opt/deploy.sh ${params.DEPLOY_ENV}", // 执行远程部署脚本
sourceFile: 'target/*.jar' // 部署的文件
)
]
]
)
}
}
}
post {
always {
emailext body: 'Build ${currentBuild.fullDisplayName} completed with status: ${currentBuild.result}',
subject: 'Jenkins Build Notification',
to: 'team@example.com' // 发送邮件通知(需配置Email Extension插件)
}
}
}
该脚本实现了“代码拉取→编译打包→并行测试→条件部署”的完整流程,支持参数化部署(如通过DEPLOY_ENV参数指定环境)。6. 配置自动化触发器:实现代码提交自动构建
为实现“代码提交即构建”的持续集成(CI),需配置自动化触发器:
hooks目录下创建post-commit(或post-receive)钩子,添加以下内容(触发Jenkins构建):#!/bin/sh
curl http://<Jenkins服务器IP>:8080/github-webhook/ # 触发Jenkins的GitHub Webhook
chmod +x .git/hooks/post-commit
push),自动触发构建。H/5 * * * *表示每5分钟检查一次)。7. 流水线优化:提升构建效能
~/.m2挂载为Docker卷),避免重复下载依赖,缩短构建时间。mvn package -pl :module1 -am),仅构建修改的模块,减少构建范围。通过以上步骤,即可在Debian系统上搭建Jenkins自动化构建流程,实现代码提交、编译、测试、部署的全自动化,提升开发效率与代码质量。