4

私のJSFプロジェクトはEARファイルとしてデプロイされています。いくつかの戦争ファイルも含まれています。EARの展開バージョン(展開された内部WARを含む)が必要です。

それを行うためのツールはありますか?

4

2 に答える 2

5

プログラムで、または手動で?JARファイルと同様に、EARファイルとWARファイルは、実際には既知の内部ファイル/フォルダー構造を持つ単なるZIPファイルです。つまり、他のZIPファイルと同じように、コードまたはデスクトップアプリケーションを使用してEARとWARを抽出できます。


Windows用のコマンドラインツールは素晴らしいでしょう。

于 2012-04-16T13:25:38.997 に答える
3

マットの答えは役に立ちましたが、時にはそれを書いてもらえるとうれしいです。

この問題を解決するために私が書いたシェル スクリプトを次に示します。実際には Cygwin で実行しましたが、Linux でも動作する可能性があります。wars、ears、または jar ファイルを解凍し、何も残らなくなるまで再帰的に解凍し続けます。結果のディレクトリで「diff -r ear1.ear-contents ear2.ear-contents」を使用して、2 つの ear ファイルを比較することができます。

#!/bin/sh

rm -rf ${1}-contents
mkdir ${1}-contents

echo "Unpacking ${1} to ${1}-contents"
unzip -d ${1}-contents ${1}

cd ${1}-contents

FILES_TO_PROCESS=`find . -type f \( -name "*.ear" -or -name "*.war" -or -name "*.jar" \)`

until [ "$FILES_TO_PROCESS" == "" ] ; do

    for myFile in $FILES_TO_PROCESS ; do

        mkdir ${myFile}-contents
        echo "Unpacking ${myFile} to ${myFile}-contents"
        unzip -d ${myFile}-contents ${myFile}
        rm $myFile

    done


    FILES_TO_PROCESS=`find . -type f \( -name "*.ear" -or -name "*.war" -or -name "*.jar" \)`
    echo "recursing to process files: $FILES_TO_PROCESS"
done
于 2014-05-05T13:48:11.557 に答える