任务背景

该项目包含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. IDEA2019 Maven项目出现Unable to import maven project: See logs for details解决办法

    问题1:Unable to import maven project: See logs for details 网上说,原因是IDEA2019和Maven3.6.2不兼容导致的,需要把Maven降级 ...

  2. Codeforces Round 596 题解

    万幸的是终于碰上了一场上分好场. 不幸的是一开始差点不会 A. 万幸的是想了个不那么稳的结论过了 pretest. 不幸的是罚时很高,而且慌得一比. 万幸的是然后半个小时内把 B 和 C 码了. 不幸 ...

  3. 使用Runtime自定义KVO,原理浅析

    一.介绍 什么是KVO?全称key-value-observer,键值观察,观察者设计模式的另一种实现.其作用是通过观察者监听属性值的变化而做出函数回调. 二.原理 KVO基于Runtime机制实现, ...

  4. Spring Boot 2.2.0新特性

    Spring Boot 2.2.0 正式发布了,可从 repo.spring.io 或是 Maven Central 获取. 性能提升   Spring Boot 2.2.0 的性能获得了很大的提升. ...

  5. 前端框架Easyui学习积累

    前端框架Easyui学习积累 1.easyui textbox 赋值:$("#id").textbox("setValue","xx"); ...

  6. 正则表达式中的.*?和python中re.S参数的详解

    本章的内容主要是为讲解在正则表达式中常用的.*?和re.S! 在正则表达式中有贪婪匹配和最小匹配:如下为贪婪匹配(.*) import re match = re.search(r'PY.*', 'P ...

  7. 黄聪:微信小程序 服务器 TLS1.0 1TLS.2 配置详细教学!

    下载IISCrypto.exe 点击best 工具自动推荐选中 也可以定义勾选 选择配置完成 然后点击”apply“ 软件弹窗提醒你 手动重启服务器!!!重启服务器 搞定! 最后 https://ww ...

  8. js判断undefined和null

    js判断undefined var exp = undefined; if (typeof(exp) == "undefined") { alert("undefined ...

  9. Fiddler 插件开发,使用 WPF 作为 UI 控件

    Fiddler 插件的 UI,本身使用的 WinForm,这个例子是使用 WinForm 中的 WPF 容器,将 WPF 控件作为 Fiddler 插件的 UI 使用. 为什么使用 WPF ?为了自适 ...

  10. Z从壹开始前后端分离【 .NET Core2.0/3.0 +Vue2.0 】框架之三 || Swagger的使用 3.1

    本文梯子 本文3.0版本文章 常见问题 1.Bug调试 2.经常有小伙伴遇到这个错误 3.路由重载 一.为什么使用Swagger 二.配置Swagger服务 1.引用Nuget包 2.配置服务 3.启 ...