zoukankan      html  css  js  c++  java
  • jenkins配置自动部署java程序

    任务背景

    该项目包含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 -9
    jps -l | grep b.jar | awk  '{print $1}'  | xargs kill -9
    jps -l | grep c.jar | awk  '{print $1}'  | xargs kill -9
    jps -l | grep d.jar | awk  '{print $1}'  | xargs kill -9
    
    cd /u01/ZFSXK
    nohup /u01/jdk1.8.0_11/bin/java -jar a.jar >euceka.log 2>&1 &
    echo "启动a程序"
    
    nohup /u01/jdk1.8.0_11/bin/java -jar b.jar >gateway.log 2>&1 &
    echo "启动b程序"
    
    nohup /u01/jdk1.8.0_11/bin/java -jar c.jar >items-service.log 2>&1 &
    echo "启动c程序"
    
    nohup /u01/jdk1.8.0_11/bin/java -jar d.jar >regulation-service.log 2>&1 &
    echo "启动d程序"
  • 相关阅读:
    Oracle 推出 ODAC for Entity Framework 和 LINQ to Entities Beta版
    Entity Framework Feature CTP 5系列文章
    MonoDroid相关资源
    MSDN杂志上的Windows Phone相关文章
    微软学Android Market推出 Web Windows Phone Marketplace
    使用 Visual Studio Agent 2010 进行负载压力测试的安装指南
    MonoMac 1.0正式发布
    Shawn Wildermuth的《Architecting WP7 》系列文章
    使用.NET Mobile API即51Degrees.mobi检测UserAgent
    MongoDB 客户端 MongoVue
  • 原文地址:https://www.cnblogs.com/hanmk/p/10918735.html
Copyright © 2011-2022 走看看