2017-04-24 7 views
1

私はAntビルドを実行するときに、最後の5つのビルド・ジャーを残しておき、他のすべてを削除したいと考えています。以下のファイルのメジャーとマイナーバージョンをご覧ください。私は次のビルドを実行すると、効果はこのようにする必要がありビルド・ジャーの最後の5バージョンだけを保持するにはどうしたらいいですか?

test-1.0.0.jar 
test-1.0.1.jar 
test-1.0.2.jar 
test-1.0.3.jar 
test-1.0.4.jar 
test-1.0.5.jar 
test-1.0.6.jar 

test-1.0.0.jar -- Deleted 
test-1.0.1.jar -- Deleted 
test-1.0.2.jar -- Deleted 

test-1.0.3.jar -- No change 
test-1.0.4.jar -- No change 
test-1.0.5.jar -- No change 
test-1.0.6.jar -- No change 
test-1.0.7.jar -- No change 

私は維持したいことを意味し

は、私は私のビルドディレクトリでこれらの以前に構築されたjarファイルを持っていると仮定します最新の5つのビルド(マイナーバージョンに基づく)のみを削除し、他のビルドはすべて削除します。

ここで最新のビルドジャーマイナーバージョンに基づいて決定されますご注意ください。

これはAntビルドファイルを使用して行うことができますか?

答えて

1

以下は最新の5を保ち、古いファイルを削除します:

<delete> 
    <allbutlast count="5"> 
    <sort> 
     <date/> 
     <fileset dir="target" includes="*.jar"/> 
    </sort> 
    </allbutlast> 
</delete> 

より完全なソリューションではなく、あなた自身を構築するよりも、専用のリポジトリマネージャに成果物を公開することです。例えば

あなたがNexusを使用することを選択した場合、それはセマンティックバージョニングのルールに基づいて、古いリリースを削除します「リポジトリからリリースを削除」と呼ばれるスケジュールされたタスクがあります。

+0

おかげで@あなたの答えをO'Connorにマークしてください。 日付ではなくファイル名でファイルを並べ替える必要があります。 egtest-1.0.0.jarの場合&& test-1.0.1.jar test-1.0.0.jarが古く、test-1.0.1.jarが新しい場合 –

+0

この回答に加えて、最後のビルド数を設定可能にすると、ビルドファイルのプロパティファイルとインポートプロパティファイルでカウント値を指定することもできます。 – Maverick

+0

@Maverick ANTはビルドツールです。リリース成果物のアーカイブルールを管理するには、Nexusのようなリポジトリマネージャ製品を使用することを強くお勧めします。あなたがリンクをたどった場合、Nexusにはすでにリリース番号に基づいてファイルを削除する機能があることがわかります。これはあなたの必要条件を満たすと思います。 –

関連する問題