终于到了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 ,发布成功