zoukankan      html  css  js  c++  java
  • 自动增量更新war包的shell脚本

    我们项目是打包成war部署在jboss中的,但在上线或者运行时,经常要修改某些类然后再增量更新到war(因为生产环境只有发布的同时有,不能每个人都打包),所以都是手动做的,耗时耗力。

    我花了点时间写了一个可以增量更新war包的类的shell 脚本,重点如下,脚本在附件,欢迎指正

    1. war以及war/WEB-INF/lib中相关jar的解压。

    先unzip war包,然后在使用find命令在war包下找到指定的相关jar包,也是使用unzip解压。

    2. 增量的文件(class)的路径计算。

    使用 javap命令进行反编译,在截取其中的包信息,比如计算Test.class的全限定路径,命令如下:

    ${JAVA_HOME}/bin/javap Test | grep ' class ' |awk -F ' ' '{if($3=="class"){print $4}else{print $3}}'
    3. 匹配及更新

    就是用第2步计算的信息使用find在第1步解压的文件夹下查找以及匹配,成功后则覆盖。

    4.重新打包。先重新打包jar, 更新war/lib下相应的jar后,在打包war

    $JAVA_HOME/bin/jar cf ${jarfolder}.jar -C $jarfolder/ .
    $JAVA_HOME/bin/jar cf ${WAR_NAME}.war -C ${WAR_NAME}/ .


    完整的脚本见附件,稍微修改一下对WEB-INF/lib/*.jar下的查找策略(JAR_SCOPE变量)就能运行~

    http://files.cnblogs.com/files/surprizeFuture/autoUpdataWar.sh

  • 相关阅读:
    Android中的IMEI
    《JAVA与模式》之适配器模式(转)
    海量日志数据__怎么在海量数据中找出重复次数最多的一个
    Java中的IO流系统详解(转载)
    获取网络文件长度问题
    内存泄漏
    Ubuntu12.04不能连接小米开发(转)
    Java/C++中数组的区别
    Android批量插入数据到SQLite数据库
    泛型编程 基础
  • 原文地址:https://www.cnblogs.com/surprizeFuture/p/5257011.html
Copyright © 2011-2022 走看看