任务背景

该项目包含4个程序包:a.jar,b.jar,c.jar,d.jar,每次启动前需要修改程序中的配置文件(修改数据源配置),然后按照先后顺序启动。

任务目标

1.利用jenkins拉取代码,且在打包前就修改好配置文件
2.打好包后,将4个程序包传输至测试服务器,并远程执行事先写好的启动脚本

配置步骤

1.先新建一个Maven任务,配置好源码地址以及build配置

2.完成上述配置后,构建一次,看看工作空间的内容
这里显示的就是这个工程的代码结构,即从git拉取代码后在jenkins工作空间的展示情况

3.修改配置文件
这次需要修改2个配置文件,一个是appr-law-items-service.jar中的application.yml,一个是appr-law-regulation-service中的application.yml
 
修改配置文件,利用的sed命令
可以在Pre Steps中添加“执行shell”
rm -f ${WORKSPACE}/apr-aw-api-gateway/target/*.jar
rm -f ${WORKSPACE}/appr-law-items-service/target/*.jar
rm -f ${WORKSPACE}/appr-law-registry-eureka/target/*.jar
rm -f ${WORKSPACE}/appr-law-regulation-service/target/*.jar
sed -r -i 's#192.xxx:3306/law_item#192.1xxx:3306/law_item#g' ${WORKSPACE}/appr-law-items-service/src/main/resources/application.yml
sed -r -i 's#password: 123#password: 123456#g' ${WORKSPACE}/appr-law-items-service/src/main/resources/application.yml
sed -r -i 's#192.xxx:3306/law_item#192.xxx:3306/law_item#g' ${WORKSPACE}/appr-law-regulation-service/src/main/resources/application.yml
sed -r -i 's#password: 123#password: 123456#g' ${WORKSPACE}/appr-law-regulation-service/src/main/resources/application.yml

这里的关键在于,如何找到application.yml文件的位置(注意是打包前这个文件的路径)
开始我找的是 “appr-law-items-service / target / classes /"下的application.yml

后来发现不对,改这个文件没有效果(这个是打包后的文件了)
后来又找到 appr-law-items-service / src / main / resources /的application.yml

这个是源码中的配置文件,修改这个文件就会生效
改动位置如下

经过上述配置就达到了打包前修改配置文件了目的(也可以下载打包好的jar文件,解压看看配置文件是否修改成功)
 
4.利用send build artifacts over ssh 插件配置远程部署
jenkins安装在154服务器,现在需要把打好的程序包传输到133服务器,并在133服务器进行远程部署
 
在构建后操作中添加send build artifacts over ssh 插件

Transfer Set Source files:需要上传的文件(相对于工作区的路径。看后面的配置可以填写多个,默认用,分隔)(直接到工作空间中找到这个文件,拷贝目录即可)

Remote directory:远程目录
Exec command:把你要执行的命令写在里面(这里我写的是切换到ZFSXK目录,然后执行事先写好的启动文件)
高级:
Flatten files:只上传文件,不创建目录(除了远程目录)
 
 
最终构建完成后,打开133服务器,切换到ZFSXK目录,查看,如下
显示传输过来的4个jar包,且执行了start.sh文件

start.sh是事先写好的启动文件,写完赋予执行权限执行即可

#! /bin/sh

jps -l | grep a.jar | awk  '{print $1}'  | xargs kill -
jps -l | grep b.jar | awk '{print $1}' | xargs kill -
jps -l | grep c.jar | awk '{print $1}' | xargs kill -
jps -l | grep d.jar | awk '{print $1}' | xargs kill - cd /u01/ZFSXK
nohup /u01/jdk1..0_11/bin/java -jar a.jar >euceka.log >& &
echo "启动a程序" nohup /u01/jdk1..0_11/bin/java -jar b.jar >gateway.log >& &
echo "启动b程序" nohup /u01/jdk1..0_11/bin/java -jar c.jar >items-service.log >& &
echo "启动c程序" nohup /u01/jdk1..0_11/bin/java -jar d.jar >regulation-service.log >& &
echo "启动d程序"

jenkins配置自动部署java程序的更多相关文章

  1. [ jenkins ] git+jenkins+maven + ansible 部署java程序

    1. 工具介绍 git:版本控制,一般都是托管到代码仓库的.如 github.coding.gitlab (本文以 coding 为例) jenkins:持续集成工具之一,也是最常用的工具,主要工作就 ...

  2. 使用jenkins自动部署java工程到jboss-eap6.3 -- 1.环境搭建

    使用jenkins自动部署java工程到jboss-eap6.3 -- 1.环境搭建 目录 使用jenkins自动部署java工程到jboss-eap6.3 -- 1.环境搭建 使用jenkins自动 ...

  3. Gitlab+Jenkins实现自动部署

    Gitlab+Jenkins实现自动部署   系统环境: Gitlab主机 IP:192.168.1.2 Jenkins主机 IP:192.168.1.3 一.为何要做自动部署 #部署Tomcat的在 ...

  4. jenkins配置自动发送邮件,抄送

    1.安装插件.系统管理-安装插件:可选插件:搜索Email Extension 2.设置全局变量.系统管理-系统设置:a.Jenkins Location 设置发送方邮件--- b.Extended ...

  5. Jenkins代码自动部署相关文档

    环境 centos 7.0+ Java JDK 1.8+ jenkins 2.220 maven 3.0+ git 1.8+ 注意事项 一. linux 安装 JDK (jdk-8u201-linux ...

  6. Jenkins之自动部署、代码安全扫描、自动化接口测试

    搭建Jenkins wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.reporpm --i ...

  7. jenkins安装自动部署

    1.1简介: 开源项目,一个可扩展的持续集成引擎.提供了一种易于使用的持续集成系统,能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性.还做到持 ...

  8. springboot+Jenkins+docker-compose自动部署项目实践

    DevOps思想 一个开发.测试.运维的整个过程的思想. plan:需求.计划 code:编码 build:构建 test: 测试 release:发布版本 deploy:部署 operate:项目运 ...

  9. 使用jenkins 插件自动部署项目至tomcat

    前面使用maven.ant编译项目就不说,只说一下使用jenkins的插件自动部署项目 1.首先jenkins安装插件Deploy to container Plugin ,下载地址为:https:/ ...

随机推荐

  1. Javascript是如何工作的?

    作为一个前端开发者或者全栈开发者,一定非常熟练Javascript.程序员社区Stack Overflow的调查结果显示,Javascript是最常用的编程语言,连续多年排在第一名.发明Javascr ...

  2. 向技术领先的华为说No,就是对国家的通信前景说No!

    历史已经证明了,任何一项可以加速人员.物资.能源.金钱.信息迁移的技术,都会让社会原有的生产力成倍地增长.中国在互联网.移动互联网保持令整个世界震惊的飞速发展,以BAT为首的诸多商业帝国建立,还有人们 ...

  3. Jenkins操作学习 -- 配置及使用

    一.jenkins基本配置 1.在Jenkins首页,点击Manage Jenkins,然后再点击Manage Plugins插件管理,安装必要的插件.这里我只需要安装Git,因为第一次初始化安装没成 ...

  4. python3在mac下配置

    目的 https://github.com/VonSdite/Plane_Wars 可以本地跑起来. 下载并安装python3 https://www.python.org/downloads/mac ...

  5. GO 键盘输入和打印输出

    键盘输入和打印输出 一.打印输出 1.1 fmt包 fmt包实现了类似C语言printf和scanf的格式化I/O.格式化verb('verb')源自C语言但更简单. 详见官网fmt的API:http ...

  6. C#上手练习6(方法语句1)

    方法是将完成同一功能的内容放到一起,方便书写和调用的一种方式,也体现了面向对象语言中封装的特性. 定义方法的语法形式如下. 访问修饰符    修饰符    返回值类型    方法名(参数列表){    ...

  7. 从程序集加载类型,遇到 ReflectionTypeLoadException 的处理办法

    处理办法 catch ReflectionTypeLoadException ,然后从里面读取 Types 数据(成功加载的类型)就可以了. 参考 ReflectionTypeLoadExceptio ...

  8. python基础(1):python介绍、python发展史

    1. python介绍 1.1 python是什么样的语言 编程语⾔主要从以下⼏个⻆度为进⾏分类,编译型和解释型.静态语⾔和动态语⾔.强类型定义语⾔和弱类型定义语⾔,我们先看编译型语⾔和解释型语⾔.稍 ...

  9. 初识Lock与AbstractQueuedSynchronizer(AQS)

    本人免费整理了Java高级资料,涵盖了Java.Redis.MongoDB.MySQL.Zookeeper.Spring Cloud.Dubbo高并发分布式等教程,一共30G,需要自己领取.传送门:h ...

  10. HTTP面试常见题

    1.HTTP2.0.1.1.1.0.0.9的区别? 答:HTTP0.9:是HTTP协议的第一个版本,只允许发送get请求,并且不支持请求头.一次请求对应一次响应.是短连接. HTTP1.0:相比于0. ...