1. 准备Debian环境
在配置Jenkins Job前,需确保Debian系统已安装Java(Jenkins依赖Java环境)和Git(若使用Git管理代码)。打开终端,依次执行以下命令:
# 更新系统软件包列表
sudo apt update
# 安装OpenJDK 11(Jenkins推荐版本)
sudo apt install -y openjdk-11-jdk
# 验证Java安装(输出版本信息即成功)
java -version
上述步骤确保系统具备运行Jenkins的基础环境。
2. 安装Jenkins
通过官方仓库安装Jenkins,保证版本稳定:
# 下载并导入Jenkins官方GPG密钥(验证软件包完整性)
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
# 添加Jenkins Debian软件源(替换为最新源地址,如2023版)
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
# 更新包索引并安装Jenkins
sudo apt update
sudo apt install -y jenkins
# 启动Jenkins服务并设置开机自启
sudo systemctl start jenkins
sudo systemctl enable jenkins
安装完成后,Jenkins会自动启动,后续通过Web界面访问。
3. 初始配置Jenkins
首次访问Jenkins需完成解锁和基础设置:
http://<服务器IP>:8080,输入/var/lib/jenkins/secrets/initialAdminPassword文件中的密码(通过cat /var/lib/jenkins/secrets/initialAdminPassword命令获取)。4. 创建Freestyle Job(传统任务类型)
Freestyle Job适用于简单构建流程,步骤如下:
https://github.com/yourname/my-java-app.git),若有私有仓库,需点击“Add”添加Git凭证(选择“Username with password”或“SSH Key”)。H/5 * * * *(每5分钟检查一次代码变更);H/5 * * * *(每5分钟轮询Git仓库是否有新提交);clean package),需提前在“Manage Jenkins”→“Global Tool Configuration”中配置Maven路径;mvn clean package或自定义编译脚本)。target/*.jar),便于后续下载;target/*.jar→/opt/app)。5. 创建Pipeline Job(现代流水线任务类型)
Pipeline Job适用于复杂构建流程(如多阶段构建、并行任务),通过Jenkinsfile定义流程,步骤如下:
Jenkinsfile,默认在项目根目录)。Jenkinsfile,定义流水线阶段(如代码检出、构建、测试、部署),示例如下:pipeline {
agent any // 使用任意可用Agent执行
stages {
stage('Checkout') {
steps {
git url: 'https://github.com/yourname/my-java-app.git', branch: 'main' // 检出代码
}
}
stage('Build') {
steps {
sh 'mvn clean package' // 使用Maven构建项目
}
}
stage('Test') {
steps {
sh 'mvn test' // 运行单元测试
}
post {
always {
junit 'target/surefire-reports/*.xml' // 收集测试报告(需安装JUnit插件)
}
}
}
stage('Deploy') {
when {
branch 'main' // 仅main分支触发部署
}
steps {
sshPublisher(
publishers: [
sshPublisherDesc(
configName: 'prod-server', // SSH配置名称(需提前在“Manage Jenkins”→“Credentials”中添加)
transfers: [
sshTransfer(
sourceFiles: 'target/*.jar', // 源文件路径
removePrefix: 'target', // 移除前缀
remoteDirectory: '/opt/app' // 目标路径
)
],
usePromotionTimestamp: false,
useWorkspaceInPromotion: false,
verbose: true
)
]
)
}
}
}
}
6. 验证Job运行结果
注意事项
/var/lib/jenkins目录)和数据,防止数据丢失。