Pregunta

Debido a consideraciones de espacio de disco que me gustaría mantener sólo alguna vez una versión de cualquier instantánea en mi repositorio. En lugar de mantener múltiples versiones con sufijos de marca de hora

por ejemplo. comercio electrónico-2.3-20090806.145007-1.ear

¿Cómo puedo configurar esto? Es este un lugar de construcción o en el repositorio (Artifactory) establecer

Gracias!

¿Fue útil?

Solución

El más simple (y recomendado) forma es utilizar las instantáneas no únicos . Si tiene que usar instantáneas únicas, se puede hacer esto en Artifactory especificando el propiedad en la definición en artifactory.config.xml

Por ejemplo:

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

Como referencia se puede hacer esto en Nexus (a través de la interfaz de usuario) mediante la creación de un servicio programado , que le permite especificar el número mínimo de retener, el plazo máximo para retenerlos para, y si se debe eliminar la instantánea si se implementa una versión de lanzamiento.

Otros consejos

cuenta que esta función / capacidad se ha extraído en el Maven 3.0

Sólo tiene que añadir algo a mi propia pregunta:

Adición

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

a mi padre POM también contribuyeron a la solución de este.

Ver:

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

Para modificar la configuración únicas en el repositorio en Artifactory - iniciar la sesión como un administrador - y seleccione Editar en el repositorio relevante - captura de pantalla aquí:

http://wiki.jfrog.org/confluence/display/RTF / Comprensión + repositorios

Artifactory puede limpiar viejas instantáneas únicas. Sin embargo, hemos encontrado instantáneas únicas como no útiles para el propósito de rastrear dependencias o rodadura de nuevo a una versión específica. Hay mejores alternativas para hacer esto, que son más limpio y más fiable. Es por eso que por defecto a Artifactory prefieren instantáneas no únicos, y esta política pueden ser centralmente controlado (que es única para Artifactory). Puede leer más sobre esto, así como la función de auto-limpieza aquí .

<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>

El uso de instantáneas no únicos no es un buen camino a seguir. En lugar de obtener un administrador de repositorio que puede limpiar y configurar instantáneas que para mantener el espacio de disco hacia abajo. Tener las instantáneas con sellos de tiempo hace que sea mucho más fácil de localizar a los problemas ya que se puede ver fácilmente qué versión se utiliza realmente.

no funcionará en Maven 3, ya que fue citado por debajo de Apache

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top