web-dev-qa-db-fra.com

Comment empêcher Maven/Artifactory de conserver des instantanés avec des horodatages

Pour des raisons d'espace disque, j'aimerais ne conserver qu'une seule version d'un instantané dans mon référentiel. Plutôt que de conserver plusieurs versions avec des suffixes d'horodatage

par exemple. ecommerce-2.3-20090806.145007-1.ear

Comment puis-je configurer cela? S'agit-il d'un paramètre de construction ou d'un paramètre de référentiel (Artifactory)?

Merci!

20
Pablojim

Le moyen le plus simple (et recommandé ) consiste à utiliser des instantanés non uniques. Si vous devez utiliser des instantanés uniques, vous pouvez le faire dans Artifactory en spécifiant la propriété <maxUniqueSnapshots> sur la définition <localRepository> dans artifactory.config.xml.

Par exemple:

<localRepository>
  <key>snapshots</key>
  <blackedOut>false</blackedOut>
  <handleReleases>false</handleReleases>
  <handleSnapshots>true</handleSnapshots>
  <maxUniqueSnapshots>1</maxUniqueSnapshots>
  <includesPattern>**/*</includesPattern>
  <snapshotVersionBehavior>non-unique</snapshotVersionBehavior>
</localRepository>

Pour référence, vous pouvez le faire dans Nexus (via l’interface utilisateur) en configurant un service planifié , il vous permet de spécifier le nombre minimal à conserver, la durée maximale de conservation et s'il faut supprimer l'instantané si une version est déployée.

26
Rich Seller

NOTE QUE CETTE FONCTION/CETTE CAPACITE A ETE SUPPRIMEE DANS MAVEN 3.0

Ajoutez simplement quelque chose à ma propre question:

Ajouter

<distributionManagement>
    ...
    <snapshotRepository>
        ...
        <uniqueVersion>false</uniqueVersion>
    </snapshotRepository>
    ...
</distributionManagement>

à mon parent, pom a également contribué à la solution.

Voir:

http://i-proving.com/space/Jessamyn+Smith/blog/2008-06-16_1

Pour modifier les paramètres uniques du référentiel dans Artifactory - connectez-vous en tant qu'administrateur - et sélectionnez Éditer sur le référentiel concerné - capture d'écran ici:

http://wiki.jfrog.org/confluence/display/RTF/Understanding+Repositories

11
Pablojim

Artifactory peut nettoyer d'anciens instantanés uniques. Cependant, nous avons constaté que des instantanés uniques ne sont pas utiles pour dépister des dépendances ou revenir à une version spécifique. Pour ce faire, il existe de meilleures alternatives, plus propres et plus fiables. C'est pourquoi Artifactory choisit par défaut de préférer des instantanés non uniques, et cette stratégie peut être centrally (qui est unique à Artifactory). Vous pouvez en savoir plus à ce sujet, ainsi que la fonction de nettoyage automatique ici .

4
user188269
<plugin>         
                    <groupId>org.codehaus.mojo</groupId>         
                    <artifactId>build-helper-maven-plugin</artifactId>         
                    <version>1.7</version>         
                    <executions>           
                        <execution>             
                            <id>remove-old-artifacts</id>             
                            <phase>package</phase>             
                            <goals>               
                                <goal>remove-project-artifact</goal>             
                            </goals>            
                            <configuration>  
                                <removeAll>true</removeAll><!-- When true, remove all built artifacts including all versions. When false, remove all built artifacts of this project version -->             
                            </configuration>          
                        </execution>         
                    </executions>       
                </plugin>
1
Cathy

Ne fonctionnera pas dans Maven 3 comme indiqué par Apache ci-dessous

It's not recommended to use non-unique snapshots since they lead to non-reproducible builds. The main use case for these was to save disk space in the repository, but this is best handled by scheduling a periodic snapshot removal task to keep the number of versions down
0
jprism

L'utilisation d'instantanés non uniques n'est pas une bonne solution. Au lieu de cela, procurez-vous un gestionnaire de référentiel capable de nettoyer les instantanés et de le configurer pour limiter l’espace disque. Les instantanés horodatés facilitent le traçage des problèmes, car vous pouvez facilement voir quelle version est réellement utilisée.

0
Brian Fox