2011-12-22 5 views
2

を使用してディレクトリのを生成しようとしました。Antビルドコマンドを使用してディレクトリのチェックサムを生成

私は以下のコマンドを試しましたが、各ファイルの各フォルダ内に再帰的に生成します。

<target name="default" depends=""> 
    <echo message="Generating Checksum for each environment" /> 
    <checksum todir="${target.output.dir}" format="MD5SUM" > 
     <fileset dir="${target.output.dir}" /> 
    </checksum> 
</target> 

私はちょうどAntコマンドを使用して、特定のディレクトリの1 checksumを生成したいです。 どうすればいいですか?

答えて

2

totalproperty属性を使用します。 the documentationによると、この物件はwill hold a checksum of all the checksums and file pathsです。

<target name="hash"> 
    <checksum todir="x" format="MD5SUM" totalproperty="sum.of.all"> 
    <fileset dir="x"/> 
    </checksum> 
    <echo>${sum.of.all}</echo> 
</target> 

その他の一般的な注意事項。

  • これは冪等ではありません。実行するたびに、新しいハッシュに以前のハッシュファイルが含まれているため(新しいハッシュファイルが作成されるため)、新しい値が取得されます。 todir属性を他の場所を指すように変更することをお勧めします。
  • ターゲットを意味のある名前にすることをお勧めします。 this great article by Martin Fowler for some naming ideas
  • 依存関係がない場合は、depends属性は必要ありません。
+0

ありがとうございました:)それは動作します。もう、もう1つの質問です。 'SHA-256'フォーマットの使い方は? –

+0

Antはおそらく、カバーの下で 'MessageDigest.getInstance(format)'を呼び出しています。つまり、必要な形式をサポートするセキュリティプロバイダをインストールする必要があります。あなたはそれを試しましたか?動作しない場合は、プロバイダ(http://bouncycastle.org/など)をJREにインストールする必要があります。 – Synesso

関連する問題