如何解压缩和重新打包WAR文件

Vin*_*C M 37 java web-applications war maven jboss7.x

我有一个WAR文件.我想打开它,编辑XML文件,删除一些罐子,然后重新打包.

我使用WINRAR打开WAR文件,然后删除了一些Jars并在WinRar中执行了"添加到存档"并创建了一个WAR.

当我在jboss文件夹中部署WAR时,我得到了一个例外.

   16:05:14,316 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) 
   MSC00001: Failed to start service jboss.deployment.unit."myapplication.war".
   STRUCTURE: org.jboss.msc.service.StartException in 
   service   jboss.deployment.unit."myapplication.war".STRUCTURE: 
   Failed to process phase STRUCTURE of deployment "myapplication.war"
Run Code Online (Sandbox Code Playgroud)

我如何重新包装WAR?

Jun*_*san 68

你可以使用这里提到的java命令从命令行更新你的战争:

jar -uvf test.war yourclassesdir 
Run Code Online (Sandbox Code Playgroud)

其他有用的命令:

用于解压缩/爆炸war文件的命令

jar -xvf test.war
Run Code Online (Sandbox Code Playgroud)

用于创建war文件的命令

jar -cvf test.war yourclassesdir 
Run Code Online (Sandbox Code Playgroud)

  • 我使用以下命令,它的工作原理:`cd [path]/yourclassesdir jar -cvf ../test.war*` (7认同)
  • 它不起作用,它不保持相同的文件结构 (2认同)
  • 执行这些操作不需要`v`选项.根据您的喜好,它的输出可能很烦人或有用.从`jar`手册页:`v生成详细输出到标准输出.我通常不喜欢使用详细输出,并认为区分不必要的详细标志和必要的`v`标志是有用的,这些标志意味着除了详细之外的其他事物. (2认同)

Bar*_*i r 8

将您的战争文件复制到 /tmp 现在提取内容:

cp warfile.war /tmp
cd /tmp
unzip warfile.war
cd WEB-INF
nano web.xml (or vim or any editor you want to use)
cd ..
zip -r -u warfile.war WEB-INF
Run Code Online (Sandbox Code Playgroud)

现在您在 /tmp/warfile.war 中更新了您的文件。


Aga*_*gam 5

这为我工作:

mv xyz.war ./tmp
cd tmp
jar -xvf xyz.war
rm -rf WEB-INF/lib/zookeeper-3.4.10.jar
rm -rf xyz.war
jar -cvf xyz.war *
mv xyz.war ../
cd ..
Run Code Online (Sandbox Code Playgroud)