Jenkins于Linux怎样实现持续集成
1. 准备基础环境
在Linux系统上实现Jenkins持续集成前,需先安装Java(JDK 11及以上,推荐LTS版本)——Jenkins依赖Java运行。以Ubuntu/Debian为例,安装命令如下:
sudo apt update &
&
sudo apt install -y openjdk-11-jdk
验证Java安装:
java -version # 确认输出包含Java版本信息
若使用CentOS/RHEL,可通过yum
安装:
sudo yum install -y java-11-openjdk-devel
此外,根据项目需求安装额外工具(如Maven/Gradle用于Java项目构建、Git用于代码管理)。
2. 安装Jenkins
通过包管理器(推荐,简单快捷)或Docker(容器化部署,便于管理)安装Jenkins:
- 包管理器安装(Ubuntu/Debian):
添加Jenkins官方仓库并导入GPG密钥:
更新包索引并安装:wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null 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 > /dev/null
sudo apt update & & sudo apt install -y jenkins
- 包管理器安装(CentOS/RHEL):
添加Jenkins仓库并安装:sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key sudo yum install -y jenkins
- Docker安装(可选):
使用docker-compose
快速部署(需提前安装Docker):mkdir -p /opt/docker_jenkins/data cat < < EOF > /opt/docker_jenkins/docker-compose.yml version: '3' services: jenkins: image: jenkins/jenkins:lts container_name: jenkins_container ports: - "8080:8080" - "50000:50000" volumes: - ./data:/var/jenkins_home EOF cd /opt/docker_jenkins & & docker-compose up -d
启动Jenkins服务并设置开机自启:
sudo systemctl start jenkins &
&
sudo systemctl enable jenkins
访问http://<
服务器IP>
:8080
,输入初始管理员密码(位于/var/lib/jenkins/secrets/initialAdminPassword
)完成初始化。
3. 配置Jenkins
-
安装必要插件:
进入“Manage Jenkins” > “Manage Plugins”,安装以下核心插件:- Git Plugin:用于从Git仓库拉取代码;
- Pipeline Plugin:支持Pipeline脚本定义CI流程;
- Maven Integration Plugin(Java项目):简化Maven构建步骤;
- Email Extension Plugin(可选):用于构建结果通知。
可选择“Install suggested plugins”快速安装推荐插件。
-
配置全局工具:
进入“Manage Jenkins” > “Global Tool Configuration”,设置工具路径(如JDK、Maven):- JDK:点击“Add JDK”,填写名称(如“jdk11”),取消“Install automatically”(若已手动安装),指定路径(如
/usr/lib/jvm/java-11-openjdk-amd64
); - Maven:同理添加Maven,指定安装路径(如
/usr/local/apache-maven-3.9.6
)。
- JDK:点击“Add JDK”,填写名称(如“jdk11”),取消“Install automatically”(若已手动安装),指定路径(如
-
配置系统参数:
进入“Manage Jenkins” > “Configure System”,修改Jenkins端口(默认8080,若冲突可修改/etc/sysconfig/jenkins
(CentOS)或/etc/default/jenkins
(Ubuntu)中的HTTP_PORT
)、管理员邮箱等。
4. 创建Jenkins Job
-
新建任务:
进入Jenkins首页,点击“New Item”,输入任务名称(如“my-java-project-ci”),选择“Freestyle project”(适合简单项目)或“Pipeline”(适合复杂流程),点击“OK”。 -
配置源码管理:
在“Source Code Management”部分,选择“Git”,输入代码仓库URL(如https://github.com/your-repo/my-java-project.git
),若有私有仓库,需添加凭证(点击“Add” > “Jenkins”)。 -
配置构建触发器:
在“Build Triggers”部分,选择触发方式:- 轮询SCM:定期检查代码变更(如
H/5 * * * *
表示每5分钟检查一次); - Webhook(推荐):通过Git仓库的Webhook(如GitHub的“Settings” >
“Webhooks”)自动触发构建(需配置Jenkins的“Webhook URL”为
http://< 服务器IP> :8080/github-webhook/
)。
- 轮询SCM:定期检查代码变更(如
-
配置构建步骤:
在“Build”部分,添加构建步骤:- Maven项目:选择“Invoke top-level Maven targets”,填写Maven目标(如
clean install
); - Shell脚本:选择“Execute shell”,输入构建命令(如
make
或gradle build
)。
- Maven项目:选择“Invoke top-level Maven targets”,填写Maven目标(如
-
配置构建后操作:
在“Post-build Actions”部分,添加后续操作:- 归档产物:选择“Archive the artifacts”,指定产物路径(如
**/target/*.jar
); - 运行测试报告:选择“Publish JUnit test result report”,指定测试报告路径(如
**/target/surefire-reports/*.xml
); - 发送通知:选择“Email Extension Plugin”,配置收件人邮箱(如
dev-team@example.com
)。
- 归档产物:选择“Archive the artifacts”,指定产物路径(如
5. 使用Pipeline脚本(可选但推荐)
Pipeline脚本通过代码定义CI流程,支持版本控制(如将脚本存于项目仓库)。
- 创建Jenkinsfile:
在项目根目录下创建Jenkinsfile
,内容示例如下(Java项目):pipeline { agent any // 使用任意可用节点 tools { maven 'maven-3.9.6' // 引用全局工具配置中的Maven jdk 'jdk11' // 引用全局工具配置中的JDK } stages { stage('Checkout') { steps { git branch: 'main', url: 'https://github.com/your-repo/my-java-project.git' } } stage('Build') { steps { sh 'mvn clean install' } } stage('Test') { steps { sh 'mvn test' } post { always { junit '**/target/surefire-reports/*.xml' // 归档测试报告 } } } stage('Deploy') { when { branch 'master' // 仅master分支触发部署 } steps { sh 'mvn deploy' // 部署到仓库或服务器 } } } post { success { echo 'Build and deployment succeeded!' } failure { echo 'Build or deployment failed!' } } }
- 创建Pipeline Job:
进入Jenkins首页,点击“New Item”,输入任务名称(如“my-java-project-pipeline”),选择“Pipeline”,点击“OK”。
在“Pipeline”部分,选择“Pipeline script from SCM”,指定SCM类型(如Git)、仓库URL及Jenkinsfile
路径(默认为Jenkinsfile
),点击“Save”。
6. 触发构建与监控
- 手动触发:进入任务页面,点击“Build Now”,查看“Build History”中的构建状态(蓝色为成功,红色为失败)。
- 自动触发:若配置了Webhook或轮询SCM,代码提交后会自动触发构建。
- 查看日志:点击构建编号,进入“Console Output”查看详细构建日志,用于调试问题。
7. 常见问题处理
- 端口冲突:修改Jenkins端口(如将8080改为8081),编辑
/etc/sysconfig/jenkins
(CentOS)或/etc/default/jenkins
(Ubuntu),修改HTTP_PORT
后重启服务。 - 插件安装失败:更换插件镜像源为国内镜像(如清华源),进入“Manage Jenkins” >
“Manage Plugins” >
“Advanced”,修改“Update Site URL”为
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
。 - 权限问题:进入“Manage Jenkins” > “Manage Users”,创建用户并分配权限(如“Administer”或“Read”);或在“Manage Jenkins” > “Configure Global Security”中启用安全功能。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Jenkins于Linux怎样实现持续集成
本文地址: https://pptw.com/jishu/719504.html