Jenkins持续集成实现步骤
Jenkins的安装需基于Java环境(JDK 11及以上),支持Linux(Ubuntu/CentOS)、Windows、Docker等多种平台:
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.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 update && sudo apt install jenkins)。https://www.jenkins.io/download/),双击运行并按照向导安装(默认安装为Windows服务)。docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts-jdk17),数据持久化到宿主机jenkins_home卷。sudo systemctl start jenkins;Windows:通过服务管理器启动),并设置开机自启。首次访问Jenkins(http://服务器IP:8080)需完成以下关键配置:
cat /var/lib/jenkins/secrets/initialAdminPassword;Windows C:\Program Files (x86)\Jenkins\secrets\initialAdminPassword)。为了让Jenkins识别并使用开发工具(如JDK、Maven、Git),需在“Manage Jenkins”→“Global Tool Configuration”中进行配置:
jdk11),选择“Install automatically”(自动下载安装)或指定本地JDK路径(如/usr/lib/jvm/java-11-openjdk-amd64)。maven3),选择自动安装或指定本地路径(如/usr/local/apache-maven-3.9.6)。git),选择自动安装或指定本地Git路径(如/usr/bin/git)。Jenkins任务是实现持续集成的核心载体,常见任务类型包括Freestyle项目(适合简单任务)和Pipeline项目(适合复杂流程)。
my-java-project)→选择“Freestyle project”→点击“确定”。https://github.com/yourname/my-java-project.git),添加凭证(SSH密钥或账号密码),指定分支(如main)。H/5 * * * *表示每5分钟检查一次;或“GitHub hook trigger for GITScm polling”配合Webhook实现代码推送自动触发)。mvn clean package;NodeJS项目:npm install && npm run build)。Pipeline项目通过Jenkinsfile(声明式或脚本式语法)定义CI/CD流程,支持代码托管(将Jenkinsfile存入仓库)、多阶段并行、动态判断等功能。
my-pipeline-project)→选择“Pipeline”→点击“确定”。Jenkinsfile,默认在仓库根目录)。以下是一个典型的Java项目Pipeline脚本(声明式语法),包含构建、测试、部署三个阶段:
pipeline {
agent any // 使用任意可用的Jenkins节点
stages {
stage('Checkout') { // 拉取代码
steps {
git branch: 'main', url: 'https://github.com/yourname/my-java-project.git'
}
}
stage('Build') { // 编译打包
steps {
sh 'mvn clean package'
}
}
stage('Test') { // 运行单元测试
steps {
junit '**/target/surefire-reports/*.xml' // 发布测试报告
}
}
stage('Deploy') { // 部署到测试环境
when {
branch 'main' // 仅main分支触发部署
}
steps {
sh 'scp target/*.jar user@test-server:/opt/app/' // 通过SCP传输文件到测试服务器
ssh 'user@test-server' 'systemctl restart my-java-app' // 重启服务(需提前配置SSH免密)
}
}
}
post {
success { // 构建成功后发送邮件通知
emailext body: '构建成功!项目:${PROJECT_NAME},构建号:${BUILD_NUMBER}',
subject: 'Jenkins构建成功',
to: 'dev-team@example.com'
}
failure { // 构建失败后发送邮件通知
emailext body: '构建失败!项目:${PROJECT_NAME},构建号:${BUILD_NUMBER}',
subject: 'Jenkins构建失败',
to: 'dev-team@example.com'
}
}
}
Jenkins支持多种构建触发方式,可根据需求选择:
H/5 * * * *表示每5分钟检查一次代码变更)。http://jenkins-server:8080/github-webhook/),代码推送后自动触发构建。build步骤触发其他任务(如build 'my-freestyle-project')。构建完成后,可通过以下方式查看结果:
mvn sonar:sonar),在Pipeline中添加SonarQube分析步骤,生成代码质量报告。docker build -t my-app:${BUILD_NUMBER} .),将应用打包为Docker镜像并推送到镜像仓库(如Docker Hub);或集成Kubernetes插件,实现容器编排部署。免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。