0

我构建了一个带有嵌入式 tomcat 服务器的 Spring Boot Web 应用程序(使用 Eclipse/STS)。

我需要对 WAR 文件中的类进行一些(混淆)处理,然后将其重新压缩,但在我尝试解压缩然后再次压缩以确保它能够正常工作之前。

但是当我解压缩然后将其重新压缩时,它将不再运行...

重现步骤:

  1. 像这样运行应用程序java -jar myapp.war......它工作正常。杀死应用程序。

  2. 像这样“解压缩”战争jar -xf myapp.war……所有的内容都被提取出来了。

  3. 删除原来的war文件...rm myapp.war

  4. 像这样将内容“重新压缩”成一场战争......jar -cfv myapp.war .

  5. 运行新的war文件……java -jar myapp.war我得到一个错误……

no main manifest attribute, in myapp.war

当我提取新的战争文件的内容时,我看到我原来的 /META-INF/MANIFEST.MF 文件已被替换为:

Manifest-Version: 1.0
Created-By: 1.7.0_06 (Oracle Corporation)

我可能在上面的步骤(4)中做错了。有任何想法吗?有没有我应该做的“Spring Boot”特定的事情?

4

1 回答 1

0

看起来我想通了...我必须使用该m选项并像这样指定清单文件...

jar -cfm myapp.war ./META-INF/MANIFEST.MF .

我错误地认为它只会包含该目录中现有的清单文件。

于 2020-11-15T23:24:47.850 回答