2017-04-24 24 views
1

Lorsque je lance une construction Ant, je veux conserver uniquement les 5 derniers pots de construction et en supprimer tous les autres. S'il vous plaît voir la version majeure et mineure du fichier ci-dessous.Comment ne conserver que les 5 dernières versions des pots de construction?

Supposons que je ces pots préalablement construites dans mon répertoire de construction:

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 

Quand je lance la version suivante, l'effet devrait être comme ceci:

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 

Cela signifie que je veux garder seulement les 5 dernières versions (basées sur la version mineure) et en supprimer toutes les autres.

S'il vous plaît noter ici le dernier est déterminé en fonction de la version de construction mineur jar. Est-ce que cela peut être fait en utilisant un fichier build Ant?

Répondre

1

Les éléments suivants supprimer les anciens fichiers, en gardant les plus récents 5:

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

Une solution plus complète serait de publier des artefacts dans un gestionnaire de référentiel dédié, plutôt que de construire votre propre.

Par exemple, si vous choisissez d'utiliser Nexus, il a une tâche planifiée appelée « Supprimer rejets à partir du référentiel » qui supprimera les anciennes versions en fonction des règles de versioning sémantiques:

+0

Merci @ Mark O'Connor pour votre réponse. Je veux trier les fichiers par nom de fichier plutôt que par date. Pour egtest-1.0.0.jar && test-1.0.1.jar test-1.0.0.jar est ancien et test-1.0.1.jar est nouveau –

+0

En plus de cette réponse, si vous voulez faire Le dernier compte de build est configurable, vous pouvez également spécifier la valeur de comptage dans le fichier de propriétés et importer le fichier de propriétés dans votre fichier de construction. – Maverick

+0

@Maverick ANT est un outil de construction. Je recommande fortement d'utiliser un produit gestionnaire de référentiel comme Nexus pour gérer les règles d'archivage des artefacts de version. Si vous suivez le lien à propos de vous découvrirez que Nexus dispose déjà de fonctionnalités pour la suppression de fichiers en fonction du numéro de version. Je pense que cela répondra à vos besoins. –