jenkins 项目部署
我这里用的是阿里云的git。
阿里云git
创建一个maven项目
这个就不用说了!!!
配置SSH公钥 / HTTPS密码
SSH公钥配置:
在git 项目中添加服务器公钥
jenkis 配置
构建maven项目
源码管理
我是用的ssh地址。必须需要配置公钥和私钥。来拉取创库代码
jenkins 添加凭证的时候,我用的是ssh 地址, 是要用ssh 密钥的方式来拉取代码
id:随便写一个名称,作为标识
usemame:写你生成密钥的用户名
private key:从你服务器里面复制到jenkins上面
配置构建触发器
触发器建议使用这2种
1.定时构建
定时构建就是没隔一段时间就是构建1次任务
0 * * * * 代表每小时0分的时候构建1次项目
第1个代表分,第2个代表时,第3个代表日,第4个代表月,第5个代表周
2.轮询SCM
轮询SCM就是查看源码管理的代码有没有更新,如果更新了就去构建,没有更新就不会构建
*/5 * * * * 代表每5分钟就去查看源码有没有更新
构建设置 (邮件通知)
邮件通知
Recipients:收件人
- Send e-mail for every unstable build:为每个不稳定的构建发送电子邮件
- Send separate-mails to individuals who broke the build:分别向破坏构建的个人发送电子邮件
- Sende-mail for each failed module:为每个失败的模块发送电子邮件
构建后操作(远程服务器配置)
name:是一个参照,就是你在系统设置里面添加的所发布服务器。
Source files: 项目构建后的目录
Remove prefix : 去前缀
Remote directoty: 发布的目录
Exec command: 发布完执行的命令,我这边写了个sh脚本,来执行启动jar包
系统配置-全局工具配置
maven配置(不推荐自动安装)
这里配置的是jenkins 服务器的maven路径
git配置 (不推荐自动安装)
这里同样也要指定git路径
jdk配置(不推荐自动安装)
配置连接远程服务器的ssh
去系统设置里配置Publish over SSH
Passphrase 服务器的密码
Path to key 连接远程服务器密钥文件的路径
Key 密钥文件的内容
Name 自定义服务器名,注:(发布指定服务器的时候)这个服务器名会在项目配置里面,构建后操作ssh server 里面参照的
HostName 服务器IP外网地址
UserName 服务器用户名
Remote Directory 传输文件的目录
最后点test configuration 测试配置连接
如果success 就配置成功
执行shell配置
我这边是根据不同的项目发布到不同的环境
在项目发布的环境编写一个 sh脚本
内容如下:
#!/bin/bash
#name:jar包启动脚本;
#此处修改脚本名称:
APP_NAME=kweb-api-1.0-SNAPSHOT.jar
#脚本菜单项
usage() {
echo "Usage: sh 脚本名.sh [start|stop|restart|status]"
exit 1
}
is_exist(){
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
#如果不存在返回1,存在返回0
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}
#启动脚本
start(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is already running. pid=${pid} ."
else
#此处注意修改jar和log文件文件位置:
nohup java -jar /home/clkt/KeAndScExtract/$APP_NAME > bootdolog.file 2>&1 &
#此处打印log日志:
tail -f /home/clkt/KeAndScExtract/bootdolog.file
fi
}
#停止脚本
stop(){
is_exist
if [ $? -eq "0" ]; then
kill -9 $pid
else
echo "${APP_NAME} is not running"
fi
}
#显示当前jar运行状态
status(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is running. Pid is ${pid}"
else
echo "${APP_NAME} is NOT running."
fi
}
#重启脚本
restart(){
stop
start
}
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac
脚本启动
sh 脚本名.sh 【脚本命令】
比如:
sh socdev.sh start 启动
jenkins中没有maven项目
点击“可选插件” 然后在右边的过滤输入框中输入搜索关键字: Maven Integration Plugin 或者 Pipeline Maven Integration Plugin ,搜索到了以后,点击直接安装,
安装完成后重启就好了。