一、新建项目
1、输入任务名称
2、选择构建一个maven项目
3、点击确定
二、配置常规参数
1、添加项目描述
2、如果是多节点机器,可指定机器部署
3、其他默认即可
三、配置源码管理
1、选择代码管理,比如git
2、输入地址
3、添加凭据,建议以ssh登录
4、指定分支,默认*/master
四、构建触发器、构建环境、pre steps
默认配置即可
五、build
goals and options:打包命令,不要加mvn,默认前缀会加
六、post steps
1、选择 run only if build succeeds:只有在构建成功后再运行下面步骤
2、选择 send files or execute commands over ssh
使用ssh免密传输服务器需要先配置ssh key (已配置可忽略)
1、Jenkins机器生成 私钥ssh-keygen
默认在~ssh
下生成id_rsa
和id_rsa.pub
2、复制id_rsa.pub
内容到部署机器~ssh
下authorized_keys
3、Jenkins机器ssh root@部署机器IP
测试是否成功
4、Jenkins > 系统管理 >全局设置,往下翻到ssh server
name:随便写
hostname:部署机器IP
Private Key: Jenkins 的id_rsa
directory: / 根目录
user:root
5、点击 test ,显示 Success 即可
3、配置 send files or execute commands over ssh
name:下拉选择上面配的服务器
source files:Jenkins成功打的包存地址,一般在项目目录下target下面,例如:包在tatget/*.jar
remove prefix:去除前缀,传到远程服务器上去掉此路径,比如:为空的话,传到服务器的地址为 上面全局配的 目录起始位置,即 /target
目录下
remote directory: 远程服务器 包存放位置,如果上面为空的话,即 /data/app/jks/target
如果remove prefix
配置为 /target
即包放在/data/app/jks
下面
exec command: 传送包完成执行的命令,需要在部署服务器对应目录下新建
shell
脚本
4、点击高级
exec timeout:脚本执行超时时间,尽量大一些,不然脚本没执行完任务就结束了
exec in pty:执行脚本后超时会自动退出
七、构建设置、构建后操作
默认即可,也可根据需要配置参数
点击保存
八、restart-jks.sh
脚本
和jar
包放到一个目录即可
#!/bin/env bash
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
source /etc/profile
#export BUILD_ID=dontKillMe
projectName="" #项目名称
DIR="" #包存放绝对路径
echo -e "\e[0;32m 重启服务... \e[0m"
echo -e "\e[31m kill $projectName进程... \e[0m"
ps -aux | grep java | grep ${projectName} | awk '{print $2}' | xargs kill -9
echo -e "\e[32m kill $projectName进程 成功 \e[0m"
echo -e "\e[0;32m 开始备份至 ${DIR}/${projectName}.jarbak ... \e[0m"
cp ${DIR}/${projectName}.jar ${DIR}/${projectName}.jarbak
cp ${DIR}/jks/${projectName}.jar ${DIR}/${projectName}.jar
echo -e "\e[0;32m 备份完成: ${DIR}/${projectName}.jarbak \e[0m"
sleep "1"
echo -e "\e[32m 启动服务... \e[0m"
nohup java -jar ${DIR}/${projectName}.jar > ${DIR}/${projectName}.log 2>&1 &
if [[ $? = 0 ]];then
sleep 28
tail -n 200 ${DIR}/${projectName}.log
fi
aaa=`ps -aux | grep java | grep ${projectName} | awk '{print $2}'`
if [[ -n "${aaa}" ]];then
echo -e "\e[32m 启动服务成功 \e[0m"
exit 0
else
echo -e "\e[32m 启动服务失败 \e[0m"
exit 1
fi
点击立即构建,试试吧!