Pergunta

Devido a considerações de espaço em disco que eu gostaria de sempre apenas manter uma versão de qualquer instantâneo no meu repositório. Ao invés de manter várias versões com timestamp sufixos

por exemplo. ecommerce-2.3-20090806.145007-1.ear

Como posso configurar isso? É este um ambiente de construção ou repositório (Artifactory) definindo

Obrigado!

Foi útil?

Solução

A maneira mais simples (e recomendado ) é usar instantâneos não-exclusivo . Se você deve usar instantâneos exclusivos, você pode fazer isso em Artifactory especificando os propriedade no definição em artifactory.config.xml

Por exemplo:

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

Para referência, você pode fazer isso em Nexus (através da UI) através da criação de um serviço regular de , ele permite que você especifique o número mínimo de reter, o prazo máximo para retê-los para, e se para remover o snapshot se uma versão de lançamento é implantado.

Outras dicas

Note que esta característica / capacidade foi removido em PERITO 3.0

Basta adicionar algo à minha própria pergunta:

Adicionando

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

para o meu pai pom também contribuiu para a solução deste.

Veja:

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

Para alterar as configurações originais no repositório no Artifactory - faça login como um administrador - e selecione Editar no repo relevante - Screenshot aqui:

http://wiki.jfrog.org/confluence/display/RTF / Entendimento + Repositórios

Artifactory pode limpar instantâneos únicos velhos. No entanto, descobrimos instantâneos únicos a ser não-útil para o propósito de rastrear dependências ou rolamento de volta para uma versão específica. Existem melhores alternativas para fazer isso, que são mais limpo e mais confiável. É por isso que os padrões Artifactory a preferir instantâneos não-exclusivos, e esta política pode ser centralmente controlada (que é exclusivo para Artifactory). Você pode ler mais sobre isto, assim como o recurso de auto-limpeza aqui .

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

Usando instantâneos não-exclusivos não é um bom caminho a percorrer. Em vez de obter um gestor de repositório que pode limpar instantâneos e configure que para manter espaço em disco para baixo. Tendo os instantâneos timestamped torna muito mais fácil de rastrear problemas desde que você pode ver facilmente qual versão realmente está sendo usado.

não funcionará no Maven 3, uma vez que foi citado pela Apache abaixo

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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top