在以前的学习中(http://www.cnblogs.com/abcwt112/p/6274575.html)我已经学会怎么打包了..这篇文章记录分享我学习如何利用jenkins将打完的包发布到远程服务器上部署并重启应用.实现自动更项目.html
http://ojz58eu0w.bkt.clouddn.com/%E5%BD%95%E5%83%8F6.wmvjava
首先应该要在jenkins的系统配置里配置SSH链接的信息git
最主要的就是 host的地址和username和password...买过VPS远程用过XSHELL的确定都知道web
在打完包之后要把war包发送到远程服务器并执行shell脚本,因此在build完成以后确定要配置一个post stepshell
source files写要传什么文件到远程服务器上,默认的当前地址是当前job的工做空间. 好比:tomcat
个人jenkins的安装路径是D:\jet\jenkins\cbash
个人job的名字是jenkins服务器
那我当前的工做空间是D:\jet\jenkins\c\workspace\jenkinsapp
我要把打出来的war包上传.因此我写的是target/*.wareclipse
我在远程服务器上不想建立target目录.因此我remove prefix里写的是target
由于我以前配置远程服务器访问的地址是/java/tomcat6(见以前的图片),我想把war放到webapps下.因此我remote directory里写webapps
传完文件之后须要执行shell脚本去重启服务器.我写的shell脚本名字是jenkins.sh放在webapps下.
jenkins.sh的内容以下(shell命令基本不会写...研究了N久参考了N多例子才写出来....= =)
1 #!/bin/sh 2 cd /java/tomcat6/webapps 3 p=$(ps -ef | grep tomcat | grep java | awk '{print $2}') 4 if [ $p ]; then 5 kill -9 $p 6 sleep 3 7 fi 8 rm -rf ./jenkins 9 rename jenkins*.war jenkins.war jenkins*.war 10 nohup /java/tomcat6/bin/startup.sh
大体意思就是若是tomcat已经启动就直接干掉.没启动就无论.而后重命名上传的war包.而后启动tomcat.
shell脚本一开运行在最后老是报一个错:没配置java路径也没配置tomcat路径....
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least one of these environment variable is needed to run this program
可是我java路径确定是配置了的..后来百度了很久找到一篇文章:
http://blog.sina.com.cn/s/blog_64693fd40101eyyh.html
/etc/profile: 当用户登陆时,该文件被执行. /etc/bashrc: 当bash shell被打开时,该文件被执行.
缘由大概是 由于个人java环境变量写在profile里...因此当SSH访问没有登陆的时候没有执行..因此没有设置环境变量...
因此我把环境变量从新再bashrc里又写了一遍就行了.
有了jenkins之后真的很方便...只要在本地eclipse里写下代码...git提交下...在jenkins里点点鼠标打个包...远程服务器就自动更新代码重启了...爽歪歪