Pergunta

Digamos que eu tenho um ivy.xml que contém o seguinte:

  <dependency org="checkstyle" name="checkstyle" rev="4.3" />

E então eu quero atualizar para Checkstyle 4.4, então eu mudar minha ivy.xml para conter:

  <dependency org="checkstyle" name="checkstyle" rev="4.4" />

Depois de um retrieve com a primeira configuração, eu tenho a checkstyle-4.3.jar arquivo. Após a segunda configuração, eu também tenho o checkstyle-4.4.jar arquivo, eo checkstyle-4.3.jar arquivo ainda existe.

Existe uma maneira de ter Ivy perceber que o arquivo antigo é um órfão, e removê-lo do diretório lib? A idéia é que eu não quero que o uso do espaço em disco dos meus desenvolvedores a aumentar drasticamente cada vez que eu atualizar uma ferramenta.

Idealmente, eu também quero isso removido do repositório local também. Eu reconheço que a intenção do repositório local é que ele é compartilhado entre os projetos, por isso não faria sentido para remover qualquer coisa, pois não saberia se o artefato ainda estava em uso em outros projetos. Mas deve haver algum tipo de procedimento de ameixa ...

Foi útil?

Solução

Eu estive usando Ivy 2.0.0, então eu não sei se isso se aplica à versão que você está usando.

The Ivy retrieve tarefa tem um atributo sync . Defina esta opção para true e / arquivos desconhecidos não utilizados em seu diretório recuperada (lib no seu caso) serão removidos. Tenha em mente, isto significa qualquer artefatos copiados manualmente neste diretório que Ivy não especificamente determinação será removida.

Além disso, observe que, se você usar a opção sync mas Ivy resolve sem dependências (vazio ou ivy.xml desaparecidas, por exemplo), a recuperar diretório será excluído.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top