之前用jenkins做了一个自动发布测试,配置任务的Post Steps时,选择的是执行shell命令。如下图:
这是在本192.168.26.233服务器上测试的,此服务器上运行jenkins,tomcat。现在换另一种方式,把jenkins打好的包远程发送到另一台服务器上运行。
第一步:安装pulish Over SSH插件
在系统管理,插件管理里面搜索Pulish Over SSH插件安装。
第二步:安装好后,在系统设置里面配置Pulish Over SSH选项如下:
然后再记录一下任务配置的post Steps配置环节:
最后,执行此次构建之后,查看是否成功启动jar包
linux查看jar是否正在运行命令:ps -ef|grep thymeleaf-1.0-SNAPSHOT.jar
以上有个问题:自己根据写的startOrStopJava.sh脚本,在linux服务器上直接运行此脚本没有一点问题。可构建的时候查看任务的Console Output日志打印上面也显示构建成功,可去服务器上查看此xxx.jar包的运行命令却是空的,啊西吧,只能说明我在Exec command这一栏写的运行脚本命令有问题
/usr/local/java/startOrStopJava.sh start 这条脚本命令明明已经执行了,可服务上的jar包就是没运行,啊西吧
可构建日志上明明显示startOrStopJava.sh脚本里面的成功日志也打印出来了,可服务器上就是没有此xxx.jar包的运行,真他妈百思不得其解啊。
解决办法:
没办法又去百度了一个构建之后启动jar包命令,亲测这回这个是成功了的
借鉴博客:https://blog.csdn.net/u010175879/article/details/79064387
最后成功配置图如下:
SSH的Exec command(执行命令)这一栏配置如下:
source /etc/profile
project=你的应用名
dir=你应用存放的目录
pid=`ps -ef | grep $dir$project | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
kill - $pid
fi
nohup java -Xms64m -Xmx512m -XX:PermSize=32m -XX:MaxPermSize=512m -jar $dir$project --spring.profiles.active=dev >/dev/null >&&
点击构建之后:
服务器上查看此jar包是否已经运行:
浏览器访问成功图,啦啦啦啦啦啦啦啦啦: