Eclipse から WAR ファイルをビルドし、コマンド ラインから ant を使用するのに問題なく動作する Ant ビルド スクリプトを用意しました。
Hudson から WAR をビルドしようとすると、WAR はアセンブルされますが、特定のファイルが適切な場所にありません。
何が原因でしょうか?
要件に従って、ANT 1.8.2 と Hudson 3.0.0 を使用しています。
私にとっては、2つの問題があったようです:
1)「basedir」を Hudson から ANT ビルド スクリプトに渡す必要がありました。これを行うには、プロジェクト内のすべてのプロジェクト フォルダーとファイル参照に "basedir" 変数のプレフィックスを付けてから、この変数を ANT 起動構成に設定するように Hudson を構成する必要がありました。
Hudson に以下を追加します。ビルド | ANT を呼び出す | プロパティ:
basedir=${WORKSPACE}
2) ANT の「コピー」タスクの一部を変更して、ファイルが既に存在する場合は明示的に上書きする必要がありました。
これはうまくいったようです:
<copy todir="${target.war.dir}/WEB-INF/classes">
...
</copy>
なりました:
<copy todir="${target.war.dir}/WEB-INF/classes" failonerror="true" overwrite="true" force="true">
...
</copy>