为什么 un-jar 然后 jar 再次破坏我的 Spring Boot web 应用程序?
Why does un-jar then jar again break my Spring Boot web app?
我构建了一个 Spring 启动网络应用程序(使用 Eclipse/STS),它有一个嵌入式 tomcat 服务器。
我需要对 WAR 文件中的 类 做一些(混淆)处理,然后再次压缩它,但在我尝试之前,我先解压缩然后再压缩以确保它会起作用。
但是当我解压缩然后重新压缩时,它不会再 运行 ...
重现步骤:
运行 像这样的应用程序... java -jar myapp.war
... 它工作正常。终止应用程序。
像这样“解压缩”war ... jar -xf myapp.war
...所有内容都已提取。
删除原来的war文件...rm myapp.war
像这样将内容“重新压缩”成 war ... jar -cfv myapp.war .
运行 新的 war 文件 ... java -jar myapp.war
... 我得到一个错误 ...
no main manifest attribute, in myapp.war
当我提取新 war 文件的内容时,我看到原来的 /META-INF/MANIFEST.MF 文件已被替换为:
Manifest-Version: 1.0
Created-By: 1.7.0_06 (Oracle Corporation)
我可能在上面的第 (4) 步做错了什么。有任何想法吗?有没有我想做的“Spring 引导”特定的事情?
看来我明白了...我必须使用 m
选项并像这样指定清单文件...
jar -cfm myapp.war ./META-INF/MANIFEST.MF .
我错误地认为它只会包含该目录中的现有清单文件。
我构建了一个 Spring 启动网络应用程序(使用 Eclipse/STS),它有一个嵌入式 tomcat 服务器。
我需要对 WAR 文件中的 类 做一些(混淆)处理,然后再次压缩它,但在我尝试之前,我先解压缩然后再压缩以确保它会起作用。
但是当我解压缩然后重新压缩时,它不会再 运行 ...
重现步骤:
运行 像这样的应用程序...
java -jar myapp.war
... 它工作正常。终止应用程序。像这样“解压缩”war ...
jar -xf myapp.war
...所有内容都已提取。删除原来的war文件...
rm myapp.war
像这样将内容“重新压缩”成 war ...
jar -cfv myapp.war .
运行 新的 war 文件 ...
java -jar myapp.war
... 我得到一个错误 ...
no main manifest attribute, in myapp.war
当我提取新 war 文件的内容时,我看到原来的 /META-INF/MANIFEST.MF 文件已被替换为:
Manifest-Version: 1.0
Created-By: 1.7.0_06 (Oracle Corporation)
我可能在上面的第 (4) 步做错了什么。有任何想法吗?有没有我想做的“Spring 引导”特定的事情?
看来我明白了...我必须使用 m
选项并像这样指定清单文件...
jar -cfm myapp.war ./META-INF/MANIFEST.MF .
我错误地认为它只会包含该目录中的现有清单文件。