mvn install:install-file -Dfile=phonegap-1.1.0.jar -DgroupId?=phonegap -DartifactId?=phonegap -Dversion=1.1.0 -Dpackaging=jar
Eu uso o comando acima para instalar o jar local no repo local maven. Agora eu tenho a dependência do repo maven. Quero remover isso do repositório local. Como limpá-lo?
Respostas:
Embora exista um comando maven que você possa executar para fazer isso, é mais fácil excluir os arquivos manualmente do repositório.
Assim no Windows
Documents and Settings\your username\.m2
ou$HOME/.m2
no Linuxfonte
.m2/repository directory
. Um colega de trabalho excluiu o diretório .m2 antes e causa problemas, porque em nosso projeto precisamos modificar osettings.xml
arquivo..m2/repository
diretório, você também excluirá todos os arquivos de plug-in do maven. Enquanto que usando opurge-local-repository
comando você está excluindo apenas dependências..m2/repository
é organizada pelo ID do grupo Maven, para que você possa excluir o subdiretório correspondente ao artefato que deseja remover.Embora a exclusão manual de arquivos funcione, existe uma maneira oficial de remover dependências do seu projeto do repositório local (cache) e, opcionalmente, resolvê-las novamente a partir de repositórios remotos.
O objetivo
purge-local-repository
, no plug-in de dependência padrão do Maven, removerá as dependências instaladas localmente deste projeto do seu cache. Opcionalmente, você pode resolvê-los novamente dos repositórios remotos ao mesmo tempo.Isso deve ser usado como parte de uma fase do projeto porque se aplica às dependências do projeto que o contém. Também as dependências transitivas serão removidas (localmente) também, por padrão.
Se você deseja remover explicitamente um único artefato do cache, use
purge-local-repository
com omanualInclude
parâmetro Por exemplo, na linha de comando:A documentação implica que isso não remove dependências transitivas por padrão. Se você estiver executando com um local de cache não padrão ou em várias plataformas, elas são mais confiáveis do que excluir arquivos "manualmente".
A documentação completa está na especificação maven-dependency-plugin .
Nota : As versões mais antigas do
dependency
plug-in maven tinham umamanual-purge-local-repository
meta, que agora é (versão 2.8) implícita pelo uso demanualInclude
. A documentação paramanualIncludes
(com ums
) também deve ser lida.fonte
.jar
s que não foram baixados do maven central ou de algum outro repositório. Quando eu executar este comando ele se livrar de todos os.jar
s que automaticamente baixado, mas quando se chega aos.jar
s que eu instalados manualmente, ele gera esta mensagem de erro:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.8:purge-local-repository (default-cli) on project alloy-generator: Failed to refresh project dependencies for: myartifact: required artifacts missing: [ERROR] manually-downloaded-and-installed.jar ...
.jar
, mas ainda gera um erro. Assim, para.jar
s que foram instalados manualmente, eu recomendaria manualmente apagar ao invés de usar este método, porque Maven cria alguns arquivos estranhos comoyourjar.jar.lastUpdated
eyourjar.pom.lastUpdated
que pode ser necessário excluir manualmente qualquer maneira. Mas se o maven gerenciava todas as dependências automaticamente, essa é uma ótima maneira de desinstalar as dependências.Pelo menos na versão atual do maven, é necessário adicionar a opção -DreResolve = false se você deseja remover as dependências do seu repositório local sem precisar fazer o download novamente.
remove as dependências sem baixá-las novamente.
fonte
Exclua todas as coisas (jar, pom.xml, etc) no
~/.m2/repository/phonegap/1.1.0/
diretório local se você estiver usando um sistema operacional Linux.fonte
Enfrentei o mesmo problema, passei por todas as sugestões acima, mas nada funcionou. Finalmente, apaguei as pastas .m2 e .ivy e funcionou para mim.
fonte
cd ~/.m2
git init
git commit -am "some comments"
cd /path/to/your/project
mvn install
cd ~/.m2
git reset --hard
fonte