如何在战争中更改web-inf / classes目录中的文件而不解压缩?

时间:2016-06-22 17:51:51

标签: java tomcat war web-inf

这是我的war文件的结构。

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替换这个。我怎么能这样做。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

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