jenkins 学习记录2
主题
在之前的学习中(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里点点鼠标打个包...远程服务器就自动更新代码重启了...爽歪歪
jenkins 学习记录2的更多相关文章
- jenkins 学习记录1
主题 以前自己做些小玩意儿比如博客(http://blogv3.labofjet.com/)的时候,在远程服务器上的tomcat发布工程用的是目录的结构,而不是war.原因很简单.用目录结构的话每次只 ...
- Jenkins学习记录
参考资料 官方文档 用MSBuild和Jenkins搭建持续集成环境(1) 用MSBuild和Jenkins搭建持续集成环境(2) 构建基于Jenkins + Github的持续集成环境 Jenkin ...
- Jenkins 学习笔记
Jenkins 的内容网站蛮多的,但是一开始我看起来确实很费劲.似乎好多东西都是悬空的,没有把底层的信息交代清楚. 我把自己对于 Jenkins 的探索过程记录下来,如下. 目录 Jenkins 学习 ...
- java后端学习记录2019
学习计划 2019年计划 1.学习计算机基础,并加以实践.包括LeetCode刷题.数据库原理(索引和锁.Sql优化等).网络协议(Http.Tcp).操作系统(加深Linux).<Http权威 ...
- Quartz 学习记录1
原因 公司有一些批量定时任务可能需要在夜间执行,用的是quartz和spring batch两个框架.quartz是个定时任务框架,spring batch是个批处理框架. 虽然我自己的小玩意儿平时不 ...
- Java 静态内部类与非静态内部类 学习记录.
目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...
- Apache Shiro 学习记录4
今天看了教程的第三章...是关于授权的......和以前一样.....自己也研究了下....我觉得看那篇教程怎么说呢.....总体上是为数不多的精品教程了吧....但是有些地方确实是讲的太少了.... ...
- UWP学习记录12-应用到应用的通信
UWP学习记录12-应用到应用的通信 1.应用间通信 “共享”合约是用户可以在应用之间快速交换数据的一种方式. 例如,用户可能希望使用社交网络应用与其好友共享网页,或者将链接保存在笔记应用中以供日后参 ...
- UWP学习记录11-设计和UI
UWP学习记录11-设计和UI 1.输入和设备 通用 Windows 平台 (UWP) 中的用户交互组合了输入和输出源(例如鼠标.键盘.笔.触摸.触摸板.语音.Cortana.控制器.手势.注视等)以 ...
随机推荐
- Android 中Activity,Window和View之间的关系
转自:http://hi.baidu.com/xiaofanqing/blog/item/8261ac114ab14f64cb80c435.html 我这里根据我个人的理解来讲讲我个人对这3个概念的理 ...
- Flask 上下文管理-- (session,request,current_app的传递)--类似本地线程实现,以及多app应用
Flask session,request,current_app的传递 请求上下文的作用 -- 封装请求相关得数据(request,session) 请求上下文 request session re ...
- C++友元函数实现
友元函数是一种特殊的函数,它必须要在类中进行声明,但其本身并不是类的成员函数,但友元函数可以访问类的私有成员变量. 友元函数的好处: 1.实现类之间的数据共享 2.提高程序运行效率,方便编程 友元函数 ...
- linux rhel7下安装python
1.查看是否已经安装Python Centos7默认安装了python2.7.5 因为一些命令要用它比如yum 它使用的是python2.7.5. 使用python -V命令查看一下是否安装Pytho ...
- bzoj 3124 直径
Written with StackEdit. Description 小\(Q\)最近学习了一些图论知识.根据课本,有如下定义. 树:无回路且连通的无向图,每条边都有正整数的权值来表示其长度.如果一 ...
- 接口测试基础——第一篇smtplib发送文字邮件
现在我们就开始进入接口测试框架的知识准备阶段,今天是第一篇,很简单的,就是发送纯文字的电子邮件,会的童鞋可以忽略,不会的就多敲几遍,直到自己能敲出来为止~~ # coding: utf-8 impor ...
- FastAdmin 在 CRUD 时出现 exec() has been disabled for security reasons 怎么办?
FastAdmin 在 CRUD 时出现 exec() has been disabled for security reasons 怎么办? 有小伙伴提问 FastAdmin 在 CRUD 时出现 ...
- Python学习系列(四)(列表及其函数)
Python学习系列(四)(列表及其函数) Python学习系列(一)(基础入门) Python学习系列(二)(基础知识) Python学习系列(三)(字符串) 一.基本概念 1,列表是什么? ...
- STM32GPIO管脚设置
(1)GPIO_Mode_AIN 模拟输入 (2)GPIO_Mode_IN_FLOATING 浮空输入(3)GPIO_Mode_IPD 下拉输入 (4)GPIO_Mode_IPU 上拉输入 (5)GP ...
- spark-shell与scala生成parquet文件
spark-shell用户 spark-shell只能spark用户来进行初始化,如果用hdfs或者root将会卡在spark-shell的初始化那个地方.可以用这两个用户来验证spark安装时成功地 ...