Estou trabalhando em um projeto com dependência X. X, por sua vez, depende de Y.
Eu costumava incluir Y explicitamente no pom do meu projeto. No entanto, não foi usado e, para tornar as coisas mais limpas, adicionei-o ao pom do X como uma dependência. X está marcado como uma dependência de liberação.
O problema é que, depois de remover Y do pom do meu projeto e adicioná-lo ao pom do X, meu projeto não está sendo aceito mvn -U clean package
. Eu sei -U atualizar snapshots, mas não lançamentos.
Portanto, sem excluir o diretório ~ / .m2 / repository, como forçar um novo download do pom do X? Além disso, tentei correr dependency:purge-local-repository
e também não funcionou.
X
o pom, ele deverá constituir uma nova versão, mesmo que seja apenas uma alteração no número do patch:1.3
->1.3.1
. Portanto, isso eliminaria esse problema desde o início.Respostas:
Você não pode fazer o Maven baixar novamente as dependências, mas o que você pode fazer é limpar as dependências que foram baixadas incorretamente usando
mvn dependency:purge-local-repository
Consulte: http://maven.apache.org/plugins/maven-dependency-plugin/purge-local-repository-mojo.html
fonte
mvn dependency:purge-local-repository clean package
, pode ser que um projeto exclua a mesma dependência no repositório local enquanto outro projeto estiver executando a compilação. Como evitar?Acabei de excluir meu ~ / .m2 / repositório e isso forçou um novo download;)
fonte
Eu acho que o seguinte comando pode ajudá-lo!
fonte
Graças à resposta de Ali Tokmen. Consegui forçar a exclusão da dependência local específica com o seguinte comando:
Com isso, ele remove
utils
do meu .m2 / repository e sempre baixa novamente autils
dependência do JAR quando executomvn clean install
.fonte
Projete com o botão direito do mouse-> Maven -> Atualizar projeto e marque as caixas de seleção como na captura de tela. Ele também atualizará lançamentos :)
fonte
-U significa forçar atualização de dependências.
Se você deseja atualizar uma única dependência sem limpeza ou -U, basta removê-la do seu repositório local e compilar.
fonte
Quando você o adicionou ao X, deveria ter incrementado o número da versão do X, ou seja, X-1.2. O
X-1.2 deveria ter sido instalado / implementado e você deve ter alterado a dependência de seus projetos no X para ser dependente da nova versão X-1.2
fonte
Se você conhece o ID do grupo
X
, pode usar este comando para fazer o download novamente de todosX
e de suas dependênciasEle faz o mesmo que as outras respostas que propõem o uso
dependency:purge-local-repository
, mas apenas exclui e baixa novamente tudo relacionado aX
.fonte
Se você realmente deseja fazer o download forçado de todas as dependências, pode tentar reinicializar todo o repositório maven. Como neste artigo já descrito, você pode usar:
fonte
Apenas exclua ~ / .m2 / repository ..... / caminho_real onde o LOC inválido está chegando, pois força o download novamente dos arquivos jar excluídos. Não exclua toda a pasta do repositório, exclua a pasta específica de onde o erro está ocorrendo.
fonte
Excluir o
~/.m2/repository
resolverá o seu problema. Mas, se você ainda precisar manter o antigo,~/.m2/repository
basta alterar temporariamente o caminho local do maven.Se você estiver trabalhando no IntelliJ, vá para Configurações do Maven e altere o caminho do Repositório Local para outro lugar. Pode ser necessário marcar a caixa de seleção de substituição próxima.
fonte
A maioria das respostas fornecidas acima resolveria o problema.
Mas se você usa o IntelliJ e deseja corrigi-lo automaticamente, vá para Configurações do Maven.
Compilação, Execução, Implantação -> Ferramentas de compilação -> Maven
Desativar trabalho offline
Ativar Sempre atualizar instantâneos (alterne quando necessário)
fonte
Vá para o caminho da construção ... exclua a biblioteca do maven existente u adicionada ... clique em adicionar biblioteca ... clique nas dependências gerenciadas do maven ... depois clique nas configurações do projeto do maven ... marque a caixa de seleção resolver dependências do maven ... vai baixar tudo dependências maven
fonte