【问题标题】:how to change a file in web-inf/classes directory in war without unpacking?如何在不解包的情况下更改 web-inf/classes 目录中的文件?
【发布时间】:2016-10-24 19:27:09
【问题描述】:

这是我的战争文件的结构。

MyApp.war
      WEB-INF
          classes/com/info/App.java
          classes/application.properties
          lib/
      META-INF
      test  

就在将这场战争部署到 tomcat 之前,Ops 团队需要更新 application.properties 文件。

我不喜欢爆炸。但只是为了更新战争并让tomcat在启动期间爆炸

我试过了

jar uvf MyApp.war /var/data/prod/application.properties

执行此命令后,我看到在 MyApp.war 的根级别添加了一个新文件。但我希望WEB-INF/classes/application.properties 被替换为这个。我该怎么做。

【问题讨论】:

    标签: java tomcat war web-inf


    【解决方案1】:

    这个怎么样....

    mkdir -p /tmp/MyApp.war/WEB-INF/classes
    cp  /var/data/prod/application.properties /tmp/MyApp.war/WEB-INF/classes
    jar -uvf MyApp.war -C /tmp/MyApp.war WEB-INF
    rm -rf /tmp/MyApp.war
    

    【讨论】:

      【解决方案2】:

      我不认为这是一个好方法,你应该外部化你的配置文件,因为它会从一个环境改变到另一个,所以它不应该成为您档案的一部分。您应该调整您的代码,以便能够从外部文件夹读取应用程序的配置。然后,您的 Ops 团队将在所有 env 上部署相同的 war,而不是每个 env 一个,这样更不容易出错。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-18
        • 2017-08-04
        • 1970-01-01
        相关资源
        最近更新 更多