准备工作
Jenkins
- 这里就不在阐述如何安装Java,Maven,Jenkins,Gitlab等相关环境,需要的请去下面这篇文章自行查看
Centos7 Git+Jenkins+Maven发布
正式开始
安装插件
- 登录Jenkins后台-系统管理-插件管理- 可选插件-Pipeline Maven Integration Plugin-直接安装
- 回到Jenkins首页,新建任务,就可以看到,可以构建一个流水线的任务了。

新建任务
- 新建一个名为test-xxl-job-admin-pipline的流水线任务

案例
- 接下来尝试发布一个项目,以开源的一个java程序xxl-job(定时任务调度)为例
- 代码仓库的URL为https://github.com/xuxueli/xxl-job.git
- 首先我们要分解一下发布一套代码的步骤,大概如下
①通过git clone拉取代码
②通过maven编译打包java代码
③通过java命令启动jar包
Pipline
①配置test-xxl-job-admin-pipline

②移到最下方Pipline脚本处

③编写Pipline脚本(),
- 格式可以仿照网上的,内容需要根据自己实际情况来写,例如我希望从https://github.com/xuxueli/xxl-job.git 拉取代码,那么我不会写pipline脚本怎么办,jenkins提供了pipline语法生成器

-选择git:Git

-输入项目代码地址,因为这个项目是开源的,所有用户都可以clone(如果是公司的项目,那肯定有gitlab的账号密码),点击生成即可

Clone的脚本
pipeline {
agent any
environment {
REVISION = "0.0.${env.BUILD_ID}"
}
options{
disableConcurrentBuilds()
skipDefaultCheckout()
timeout(time: 1, unit: 'HOURS')
timestamps()
}
parameters{
string(name: 'PERSON', defaultValue: '测试-字段输入', description: '请输入中文')
booleanParam(name: 'xxl_job_admin', defaultValue: true, description: '是否发布xxl_job_admin')
}
stages {
stage ("Clone") {
//
steps{
script{
if ( params.xxl_job_admin== true ){
echo "${params.xxl_job_admin}"
echo "xxl_job_admin为选中状态"
echo "开始拉取代码"
git 'https://github.com/xuxueli/xxl-job.git'
}
else {
echo "xxl_job_admin未选中状态,跳过"
}
}
}
}
}
}
- 保存,运行任务-Build with Parameters

- 查看控制台输出- Console Output

- 就可以看到正在拉取了,第一次拉取是比较慢,因为外网拉取。对此,我建议,自建gitlab,然后将代码clone到自己的gitlab(提高代码clone速度),后期再自建nexus私服(提高编译时候拉取依赖包的速度)。

- 那么Clone 就到此为止了
Build编译打包脚本
- 因为clone下来是3个文件夹,而我们只需要打包xxl-job-admin就可以,所以我们只要进入xxl-job-admin再进行打包

- 下面是脚本
pipeline {
agent any
environment {
REVISION = "0.0.${env.BUILD_ID}"
}
options{
disableConcurrentBuilds()
skipDefaultCheckout()
timeout(time: 1, unit: 'HOURS')
timestamps()
}
parameters{
string(name: 'PERSON', defaultValue: '测试-字段输入', description: '请输入中文')
booleanParam(name: 'xxl_job_admin', defaultValue: true, description: '是否发布xxl_job_admin')
}
stages {
stage ("Clone") {
//
steps{
script{
if ( params.xxl_job_admin== true ){
echo "xxl_job_admin为选中状态"
echo "开始拉取代码"
git credentialsId: 'db8f1b2a-a0e1-40e2-8be5-840300cd5d0b', url: 'http://git.mifaqianbao.cn:8090/mifa/stib/java/xxl_job_admin.git'
//sh "sudo -u ${tenant} ${url}/${tenant}/deploy.sh stib_data ${choice} ${Branch}"
}
else {
echo "xxl_job_admin未选中状态,跳过"
}
}
}
}
stage ("Build") {
steps{
script{
if ( params.xxl_job_admin== true ){
echo "xxl_job_admin为选中状态"
echo "开始编译代码"
sh "cd xxl_job_admin && mvn clean package -Dmaven.test.skip=true"
}
else {
echo "xxl_job_admin未选中状态,跳过"
}
}
}
}
}
}
- 保存后构建即可,可以看到我第一次编译用了3分16秒,第二次仅仅用了9秒钟

· 打包脚本就到此为止了
传输启动脚本
- 接下来就是将编译好的包传输到目标主机并启动,这个就很简单了,无非就是scp,kill,start。
- 这就自己琢磨好了,思路就是这样,简简单单。也可以将步骤分解的再细致一点。类似的脚本在上一篇文档中有
Centos7 Git+Jenkins+Maven发布
结束语
有疑问的话 欢迎留言,随时滴滴。基本上工作日的时候都会看一下。
赞赏码



本文详细介绍了在Centos7环境下使用Jenkins Pipeline进行自动化部署的过程,包括安装配置、编写Pipeline脚本实现代码克隆、编译打包及远程部署等关键步骤。
1139

被折叠的 条评论
为什么被折叠?



