一、安装插件【系统管理 → 插件管理 】

  为了通过SSH上传war包,我们需要安装Publish Over SSH 插件。

二、添加SSH 服务器【系统管理→系统设置】

  

  参数说明:

  Name:ssh server的名字,随便写,意义明确,到时候选择的时候,下拉框显示的就是这个名字

  HostName:远程服务器的IP地址,不用带端口号

  UserName:登陆服务器的用户名

  Remote Directory:远程服务器的目录,用来存放build完的war包,这里填写tomcat的安装目录即可

  Use password authentication, or use a different key:默认是未勾选的,这是登陆服务器的方式,一种是使用用户名密码,另外一种是需要在服务器上生成证书key之类的,为了图方便这里我勾上了。

  Passphrase / Password:填上服务器的密码即可。

  其他选项保持默认,然后保存。

三、新建项目

  填写项目名,选择一种工程类别,我默认选择了第一个。

 四、配置项目

  点击进入项目,在右边的菜单里点击配置。填写项目名称和描述,这些基本的就不说了。

  在源码管理,选择代码的来源,我选择了Git

  Credentials:选择一个你在代码管理网站的用户,第一次是空的,点击右边的ADD,填写用户名密码,就可以选择了。

  接下来,我认为是最重要的一步。

  在构建环境上勾选第一个和【Send files or execute commands over SSH after the build runs】,然后在Name上选择之前添加过的SSH server

  接下来,Transfer set,设置文件传输时的一些参数。

  Source files:文件源,就是在Jenkins机器上的root/.jenkins/workspace/项目名/,这是根目录(项目名就是你之前在Jenkins新建的项目),这个根目录下的war包路径

        比如:root/.jenkins/workspace/myproject/a/b/c.war,那么Source files填写a//b/c.war即可。

        那么,我怎么知道我的全路径是什么呢,大家可以不配构建环境,在上一步的git地址配好以后,直接去build,构建完以后构建的信息里会有相关的路径输出。

  Remove prefix:去掉source files的路径,比如之前是a/b/c.war,那么我如果填写a/b/,那么最后只会把c.war传输到目标文件下面。

  Remote directory:这是war包传输到远程服务器上的路径,但是由于之前在配置SSH Server的时候已经配置了一个Remote directory(tomcat 安装目录),

            所以默认如果不填,那么就是ssh server的目录,如果填的话,那么就会在ssh server的directory下去查找/生成。

            这里我填写的是wars,用来存放备份包的地方,你也可以直接填/webapps

 Exec Command:这个是填写shell命令,在你把war包传完以后,会去执行这里的命令。

          我这里填写了一个,sh脚本,放在root下面,war包传输完成以后,会去执行这个sh脚本。

  sh脚本:

#!/bin/sh
export JAVA_HOME=/usr/java/jdk1.8.0_144
#找到tomcat进程,并杀死
kill -9 $(ps -aef | grep tomcat-admin | grep -v grep | awk '{print $2}')
cd /home/tomcat/tomcat-admin/wars/ #将传上来的war包拷贝到tomcat的webapps下面
cp -f ROOT.war ../webapps/ROOT.war #重命名当前(wars下)的包名,作为备份
mv ROOT.war ROOT_`date +%Y%m%d%H%M%S`.war sleep 5s #重启tomcat
cd /home/tomcat/tomcat-admin/bin/
./startup.sh

  

五、点击保存,然后回到项目界面,点击立即构建即可。

最新文章

  1. Android设置图片内存溢出(OOM)问题——Android开发进阶之路6
  2. 7.1WebApi2的异常处理
  3. HTML5+CSS3学习笔记(一)
  4. Winform开发中常见界面的DevExpress处理操作
  5. 学习simple.data之基础篇
  6. MyBatis参数传入集合之foreach动态sql
  7. javascript 生成UUID
  8. 组件Prop验证
  9. Python面向对象篇(1)-类和对象
  10. Golang Linux Shell编程(一)
  11. kubernetes关键概念总结
  12. qt 坐标变换
  13. JavaScript入门学习笔记(二)
  14. C#语言のC#扩展方法(.Net特性)
  15. MyBatis - 6.Spring整合MyBatis
  16. C#Workbooks 对象的 Open 方法参数说明
  17. 国外互联网大企业(flag)的涨薪方式
  18. nginx - 性能优化,突破十万并发
  19. BZOJ3812主旋律
  20. Sublime Es6教程1-环境搭建

热门文章

  1. __str__方法
  2. 【Nginx】Nginx配置
  3. bzoj3505: [Cqoi2014]数三角形 [数论][gcd]
  4. NX二次开发-UFUN CSYS坐标系转换UF_CSYS_map_point
  5. NX二次开发-UFUN修改当前导出CGM文件选项设置UF_CGM_set_session_export_options
  6. csp-s模拟测试94
  7. mysql数据库中的索引介绍与优化(转)
  8. 使用Devstack部署neutron网络节点
  9. 【转】tomcat系统架构分析
  10. bias、variance与拟合之间的关系