任务背景
该项目包含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: minstone#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: minstone#password: 123456#g' ${WORKSPACE}/appr-law-regulation-service/src/main/resources/application.yml
这里的关键在于,如何找到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:把你要执行的命令写在里面
高级:
Flatten files:只上传文件,不创建目录(除了远程目录)
最终构建完成后,打开133服务器,切换到ZFSXK目录,查看,如下
显示传输过来的4个jar包,且执行了start.sh文件