在开始配置前,需确保Linux服务器(如Ubuntu 22.04/CentOS 7)满足基础要求:
sudo apt install openjdk-11-jdk -y)。sudo yum install git -y或sudo apt install git -y)。ssh-keygen -t rsa -C "your_email@example.com",将生成的~/.ssh/id_rsa.pub内容复制到仓库的SSH Keys设置中。wget -q -O - https://pkg.jenkins.io/debian-stable/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 -y)。sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo;sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key;sudo yum install jenkins -y)。sudo systemctl start jenkins;sudo systemctl enable jenkins(设置开机自启)。http://<服务器IP>:8080,使用/var/lib/jenkins/secrets/initialAdminPassword中的初始密码登录,完成初始设置(如安装推荐插件)。进入“Manage Jenkins”→“Manage Plugins”,安装以下核心插件:
sudo systemctl status ssh),若未开启则执行sudo systemctl start ssh。linux-server),选择“Permanent Agent”,点击“OK”。/home/jenkins,需提前创建)。auto-deploy-maven),选择“Pipeline”,点击“OK”。Jenkinsfile),需指定SCM类型(如Git)、仓库URL(如https://github.com/your-repo/project.git)及分支(如main)。pipeline {
agent any
tools {
maven 'Maven 3.8.6' // 需在“Manage Jenkins”→“Global Tool Configuration”中配置Maven
jdk 'OpenJDK 11' // 配置JDK
}
stages {
stage('Checkout') {
steps {
git branch: 'main', url: 'https://github.com/your-repo/project.git'
}
}
stage('Build') {
steps {
sh 'mvn clean package' // Maven项目构建
// sh './gradlew build' // Gradle项目构建
}
}
stage('Test') {
steps {
sh 'mvn test' // 运行单元测试
}
}
stage('Deploy') {
steps {
sshPublisher(
publishers: [
sshPublisherDesc(
configName: 'linux-server', // 关联的SSH节点名称
verbose: true,
transfers: [
sshTransfer(
sourceFile: 'target/*.jar', // 构建产物路径(Maven)
// sourceFile: 'build/libs/*.jar', // Gradle
removePrefix: 'target', // 移除前缀
remoteDirectory: '/opt/app' // 目标服务器部署路径
)
]
)
]
)
// 若需重启服务(如Spring Boot),可添加以下命令:
// sshPublisher(
// publishers: [
// sshPublisherDesc(
// configName: 'linux-server',
// verbose: true,
// command: 'systemctl restart app.service'
// )
// ]
// )
}
}
}
post {
always {
junit 'target/surefire-reports/*.xml' // 发布测试报告
}
success {
echo 'Deployment succeeded!'
}
failure {
echo 'Deployment failed!'
}
}
}
H/5 * * * *表示每5分钟检查一次代码仓库是否有更新)。http://<服务器IP>:8080/github-webhook/,当代码推送时自动触发构建。/opt/app目录下是否有最新构建的产物(如.jar文件),确认服务是否重启(如systemctl status app.service)。通过以上步骤,可实现Jenkins在Linux环境下的自动化部署流程,覆盖代码拉取、构建、测试、传输及部署全链路。根据项目需求(如Docker容器化、前端项目),可扩展Pipeline脚本(如添加Docker构建步骤、Vue项目npm run build命令)。