【Jenkins】Java 的 CICD

Jenkins+CICD实战
本文详细介绍如何在CentOS7环境下,使用Jenkins 2.222配合Java与Maven进行项目的自动化编译和发布流程。涵盖插件安装、JDK与Maven配置、Svn凭证设置、定时任务配置及构建后的远程服务器部署步骤。

终于到了Jenkins的发布了,对于 Jenkins 的搭建,前两天写了一篇【Jenkins】安装 + 升级 踩坑记 ,今天晚上寻思着抽点时间写一下 Jenkins + Java 的编译及发布过程

系统:centos 7
Jenkins: 2.222
Jdk:1.8
Mavne: 3.6.3

与Jenkins环境的搭建,本地新增环境 Maven, 用于编译Java项目

在开始之前,我们要选择几个插件,这里先说明下插件的安装

Jenkins -> Plugin Manager 插件管理路径

在这里可以选择自己需要的插件进行安装,如遇到不起效插件,安装后重启 Jeninks 服务

这里推荐一个中文插件:搜索 Localization: Chinese (Simplified)  安装即可

Jenkins CICD 重要环节

1,服务器配置,用于登陆服务器
2,Jdk 配置,及 Maven 配置,用于项目打包
3,Svn 凭证配置(用于访问 Svn 并拉取代码)

1,服务器设置,主要作用是将程序发布到对应服务器上

插件的选择

Subversion Plug-in Svn 代码服务插件(Svn 服务器,需要配置钩子程序,才可以进行代码拉取)

Publish Over SSH 这个插件即可解决我们远程连接服务器的配置插件,安装后进行如下操作

配置好后进行 TestConfiguration ,查看是否可以成功访问

这里不仅可以使用服务器账号密码方式,同样可以使用 Key 进行访问登录

 

2,Jdk 与 Maven 配置

Jenkins -> Global Tool Configuration 全局配置路径

Maven 全局配置路径,maven 的 setting.xml 文件地址配置上去

Jdk 全局配置路径,配置 Jdk 的安装目录


在这里对凭证进行管理,添加凭证,只需要选择范围,然后填入用户名,密码

上图为我已经配置好的 Svn 凭证

由于个人使用的是 Svn,所以这里已经配置好了

以上为搭建 Maven 项目打包及发布的基础配置,共有,Svn凭证,服务器配置,Maven及Jdk配置

 

下面,我们步入正题,这里我只说明下我发布的目标及思路:

目标:定时完成自动拉取代码,打包并发布

思路:1,从代码服务器拉取代码(会判断是否存在更新)

           2,打包

           3,发布项目到服务器后,关闭原有正在运行的服务,然后替换新包后进行服务启动

 

具体配置内容:

           1,简单做下项目描述

        2,源码管理

        3,构建触发器

       4,构建触发器,这里好几种,Poll Scm 为定时设定(定时配置内容,需要根据实际情况而定)

       5,不需要构建环境配置

       6,构建

说明:maven 命令是  mvn  ,这里采用maven打包,则不需要将 mvn 作为执行命令的前缀,因为 命令执行时, 系统会自动将选择的 Maven 进行命令填充,如,目标为 clean,实际执行未 mvn clean

        7, 构建后的操作(发布)

这是配置的最后一个环节

        8,Exec command,执行脚本命令,该脚本存放到对应服务器目录下,配置如上图 /usr/local/application/sh/xxxxx.sh,配置到固定地址

#!/bin/bash
echo '开始执行脚本'

# 按端口kill掉当前运行的程序
kill -9 `lsof -t -i:8083`

# 移动代码到指定运行目录下
mv xxxxxxxxxx.jar /usr/local/application/

# 睡3秒
sleep 3s

#启动服务,并且将日志记录到了文件
nohup java -jar xxxxxxxxxx.jar --server.port=8083 --spring.profiles.active=test >/usr/local/application/log 2>&1&

echo '执行完了构建'

 

配配置结束后,再看看是否可以运行

待打包及发布过程在代码中的时候,控制台输出: Finished: SUCCESS ,发布成功

 

<think>好的,我现在需要帮助用户了解如何使用Jenkins实现CI/CD流水线。首先,我得回忆一下Jenkins的基本概念和CI/CD的流程。CI/CD是持续集成和持续交付的缩写,主要用于自动化软件开发和部署流程,提高效率减少错误。 Jenkins作为开源的自动化服务器,支持插件扩展,能够构建、测试和部署代码。用户的问题是如何使用它来建立流水线,所以需要分步骤说明。首先应该考虑安装和配置Jenkins,然后设置代码仓库的连接,比如GitHub或GitLab。接着是创建流水线任务,可能用Jenkinsfile来定义步骤,包括构建、测试、部署等阶段。 还要提到插件的作用,比如Pipeline插件、Git插件、构建工具插件(Maven/Gradle)等,这些都是实现自动化流程的关键。然后,可能需要解释如何编写Jenkinsfile,使用声明式或脚本式语法,以及如何配置Webhook来自动触发构建。 用户可能还需要了解如何集成测试和部署到不同环境,比如测试服务器或生产环境,可能涉及Docker、Kubernetes等工具。此外,错误处理和监控也是重要部分,确保流水线的稳定性。 需要确保回答结构清晰,分步骤说明,每个步骤的关键点都要提到。同时,根据用户的要求,生成相关的问题,可能包括优化流水线速度、安全性实践、与其他工具的集成等。还要注意使用中文,LaTeX格式的正确应用,比如行内公式用$...$,独立公式用$$...$$,但在这个问题中可能涉及代码和步骤较多,数学公式可能较少,不过如果有涉及变量或表达式的地方需要正确应用。 最后检查是否符合系统级指令,特别是引用标识的添加,虽然用户提供的引用内容中没有具体引用来源,但可能在回答中如果有参考特定文档或最佳实践,需要在末尾添加引用标识。不过根据用户提供的示例,可能只需在最后的问题部分生成相关问题即可,引用标识可能不需要实际链接,只要格式正确。 总结步骤可能如下: 1. 安装Jenkins 2. 配置必要插件 3. 连接代码仓库 4. 创建Jenkins流水线任务 5. 编写Jenkinsfile定义阶段 6. 设置自动化触发 7. 集成测试和部署 8. 监控和维护 每个步骤需要简要说明如何操作,可能遇到的常见问题或注意事项。例如,在安装Jenkins时,需要Java环境,配置插件时要确保网络畅通等。在编写Jenkinsfile时,区分声明式和脚本式流水线的选择,以及阶段的具体命令。 另外,安全性方面,比如凭证管理,如何安全地存储和使用访问令牌、SSH密钥等,可能需要提到使用Jenkins的凭证管理功能。还有分布式构建,如何配置agent节点来分担负载。 最后,生成的相关问题需要围绕CI/CD流水线的优化、扩展、故障排除、与其他工具的集成等方面,帮助用户深入学习和解决问题。</think>### 如何使用 Jenkins 实现 CI/CD 流水线 #### 1. 安装与基础配置 - **安装 Jenkins** 需要先安装 Java 环境(JDK 11+),然后通过官方包管理工具或下载 WAR 包部署。例如在 Ubuntu 上: ```bash sudo apt install openjdk-11-jdk 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 ``` - **初始化配置** 访问 `http://localhost:8080`,根据向导完成插件安装和管理员账户设置。 #### 2. 关键插件安装 - **必需插件**: - `Pipeline`:支持流水线任务定义 - `Git`:集成 Git 仓库 - `Docker`:容器化构建与部署 - `Credentials Binding`:安全管理密钥[^1] #### 3. 连接代码仓库 - **配置凭证**: 在 Jenkins 控制台添加 Git 仓库的访问凭证(如 SSH 密钥或用户名/密码)。 - **创建流水线任务**: 选择“新建任务” → “流水线”,在配置页面的“Pipeline”部分指定仓库 URL 和凭证。 #### 4. 编写 Jenkinsfile 在项目根目录创建 `Jenkinsfile`,定义流水线阶段: ```groovy pipeline { agent any stages { stage('Checkout') { steps { git url: 'https://github.com/your-repo.git', branch: 'main' } } stage('Build') { steps { sh 'mvn clean package' // Maven 示例 } } stage('Test') { steps { sh 'mvn test' } } stage('Deploy') { steps { sh 'docker build -t your-image .' sh 'docker push your-registry/your-image' } } } } ``` #### 5. 自动化触发构建 - **Webhook 配置**: 在代码仓库(如 GitHub)中设置 Webhook,指向 Jenkins 的 `http://<jenkins-url>/github-webhook/`,实现代码推送后自动触发流水线[^1]。 #### 6. 高级集成与优化 - **并行执行**: 使用 `parallel` 指令加速测试阶段: ```groovy stage('Parallel Tests') { parallel { stage('Unit Test') { steps { sh 'mvn test' } } stage('Integration Test') { steps { sh 'mvn verify' } } } } ``` - **容器化构建**: 在 `agent` 中指定 Docker 镜像,确保环境一致性: ```groovy agent { docker { image 'maven:3.8.4-openjdk-11' } } ``` #### 7. 监控与维护 - **日志与通知**: 集成 Slack 或邮件插件,实时推送构建结果。 - **蓝海仪表盘**: 使用 Blue Ocean 插件可视化流水线状态。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值