私のJSFプロジェクトはEARファイルとしてデプロイされています。いくつかの戦争ファイルも含まれています。EARの展開バージョン(展開された内部WARを含む)が必要です。
それを行うためのツールはありますか?
私のJSFプロジェクトはEARファイルとしてデプロイされています。いくつかの戦争ファイルも含まれています。EARの展開バージョン(展開された内部WARを含む)が必要です。
それを行うためのツールはありますか?
プログラムで、または手動で?JARファイルと同様に、EARファイルとWARファイルは、実際には既知の内部ファイル/フォルダー構造を持つ単なるZIPファイルです。つまり、他のZIPファイルと同じように、コードまたはデスクトップアプリケーションを使用してEARとWARを抽出できます。
Windows用のコマンドラインツールは素晴らしいでしょう。
マットの答えは役に立ちましたが、時にはそれを書いてもらえるとうれしいです。
この問題を解決するために私が書いたシェル スクリプトを次に示します。実際には 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