主题

  在之前的学习中(http://www.cnblogs.com/abcwt112/p/6274575.html)我已经学会怎么打包了..这篇文章记录分享我学习如何利用jenkins将打完的包发布到远程服务器上部署并重启应用.实现自动更项目.

效果

http://ojz58eu0w.bkt.clouddn.com/%E5%BD%95%E5%83%8F6.wmv

配置

配置SSH连接

首先应该要在jenkins的系统配置里配置SSH连接的信息

最主要的就是 host的地址和username和password...买过VPS远程用过XSHELL的肯定都知道

配置POST STEP

在打完包以后要把war包发送到远程服务器并执行shell脚本,所以在build完成之后肯定要配置一个post step

source files写要传什么文件到远程服务器上,默认的当前地址是当前job的工作空间. 比如:

我的jenkins的安装路径是D:\jet\jenkins\c

我的job的名字是jenkins

那我当前的工作空间是D:\jet\jenkins\c\workspace\jenkins

我要把打出来的war包上传.所以我写的是target/*.war

我在远程服务器上不想创建target目录.所以我remove prefix里写的是target

因为我之前配置远程服务器访问的地址是/java/tomcat6(见之前的图片),我想把war放到webapps下.所以我remote directory里写webapps

传完文件以后需要执行shell脚本去重启服务器.我写的shell脚本名字是jenkins.sh放在webapps下.

jenkins.sh的内容如下(shell命令基本不会写...研究了N久参考了N多例子才写出来....= =)

 #!/bin/sh
cd /java/tomcat6/webapps
p=$(ps -ef | grep tomcat | grep java | awk '{print $2}')
if [ $p ]; then
kill -9 $p
sleep 3
fi
rm -rf ./jenkins
rename jenkins*.war jenkins.war jenkins*.war
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里点点鼠标打个包...远程服务器就自动更新代码重启了...爽歪歪

最新文章

  1. 基于Centos7+Nginx+Tomcat8的负载均衡服务器的搭建
  2. Android TextView高级特性使用
  3. 【CLR in c#】属性
  4. ubuntu 装机及装机以后干的事情
  5. css3 半个字符美化方法
  6. pdo封装类
  7. xtrabackup 安装、备份、还原及错误处理 教程
  8. work_7
  9. c++大数模版
  10. C语言Printf格式
  11. IOS某个ViewController禁止自动旋转
  12. javascript 中的location.pathname
  13. 【巨杉答疑】巨杉数据库和mongodb有什么关系吗?
  14. EventUtil.addHandler方法
  15. mysql 批量导入
  16. 前后端token机制 识别用户登录信息
  17. c#+CAD动态移动效果
  18. Flask里面的cookie的基本操作
  19. JavaScript实现表单的全选,反选,获取值
  20. mysql外键的三种关系

热门文章

  1. 2——FFMPEG之协议(文件)操作----AVIOContext, URLContext, URLProtocol
  2. 《锋利的jQuery》读书笔记(DOM+事件)
  3. 有了Docker的程序猿们就能开启“上帝视角”?
  4. Problem: Query on the tree(二分+划分树)
  5. Leetcode 1020. Number of Enclaves
  6. Photon Cloud Networking: OnPhotonSerializeView Not Firing
  7. 在zxing开源项目里,camera.setDisplayOrientation(90)出现错误
  8. linux C使用strerror来追查错误信息
  9. SSM框架(1)
  10. Hexo博客网站再配置