Importei meu projeto que já estava funcionando em outro computador e ele começou a baixar dependências.
Aparentemente, minha conexão à Internet travou e agora recebo o seguinte:
>Build errors for comics; org.apache.maven.lifecycle.LifecycleExecutionException:
Failed to execute goal on project comicsTest: Could not resolve dependencies for project comicsTest:comicsTest:war:0.0.1-SNAPSHOT:
The following artifacts could not be resolved:
org.springframework:spring-context:jar:3.0.5.RELEASE,
org.hibernate:hibernate-entitymanager:jar:3.6.0.Final,
org.hibernate:hibernate-core:jar:3.6.0.Final,
org.hibernate:hibernate-commons-annotations:jar:3.2.0.Final,
org.aspectj:aspectjweaver:jar:1.6.8,
commons-lang:commons-lang:jar:2.5,
>mysql:mysql-connector-java:jar:5.1.13: Failure to transfer org.springframework:spring-context:jar:3.0.5.RELEASE from http://repo1.maven.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced.
>Original error: Could not transfer artifact org.springframework:spring-context:jar:3.0.5.RELEASE from central (http://repo1.maven.org/maven2): No response received after 60000
Como forço o maven a atualizar?
Respostas:
-U
significa forçar atualização de dependências de instantâneo . Dependências de versão não podem ser atualizadas dessa maneira.fonte
Se o seu repositório local estiver de alguma forma cheio de jarros de liberação, em vez de snapshots (
-U
e--update-snapshots
apenas atualizar snapshots), você poderá limpar o repositório local usando o seguinte:Você provavelmente deseja limpar e instalar novamente:
Muito mais informações disponíveis em https://maven.apache.org/plugins/maven-dependency-plugin/examples/purging-local-repository.html
fonte
mvn dependency:purge-local-repository
, ele simplesmente re-baixado todas as dependências novamente, o que é exatamente o que eu queria-U
parece forçar a atualização de todas as dependências.Se você deseja atualizar uma única dependência sem limpeza ou
-U
pode simplesmente removê-la do seu repositório local e depois compilar.O exemplo abaixo se para atualização
slf4j-api 1.7.1-SNAPSHOT
:fonte
Todas as respostas aqui não funcionaram para mim. Eu usei o método do martelo:
Isso resolveu o problema :-)
fonte
.m2
chamado*.lastUpdated
find ~/.m2/ -name "*.lastUpdated" -delete
faria sem o perigo dexargs
ourm
exceder alguns limites (se muitos arquivos forem encontrados).Você pode fazer efetivamente a partir de
Eclipse IDE
. Claro, se você estiver usando.fonte
Caso alguém queira apenas atualizar as dependências de captura instantânea do projeto e não queira instalar o artefato:
Não se esqueça de reimportar dependências no seu IDE. No IDEA, você precisa clicar com o botão direito do mouse no arquivo pom e escolher Maven -> Reimportar
fonte
Se você não tiver certeza do que está dentro do seu repositório local, recomendo iniciar uma compilação com a opção:
Dessa forma, você garantirá a construção em um ambiente de sala limpa.
fonte
No meu caso, primeiro eu fiz foi:
Ainda estava mostrando o mesmo erro, então fechei o projeto e o reabri novamente. Finalmente funcionou.
fonte
Se você estiver usando o eclipse IDE, então:
Pressione alt + F5, a janela para o Update Maven Project será exibida.
Marque - Forçar atualização de capturas instantâneas / liberações e clique em OK.
Se estiver usando o IDE Intellij
fonte
Usei o IntelliJ IDE e tive um problema semelhante. Para solucionar, cliquei em "Gerar fontes e atualizar pastas para todos os projetos" na guia Maven.
fonte
Eu tenho o erro em outro contexto. Portanto, minha solução pode ser útil para outras pessoas que se deparam com a pergunta:
O problema: copiei o repositório local para outro computador, que não tem conexão com um repositório especial. Então, o maven tentou verificar os artefatos no repositório inválido.
Minha solução: Remova os arquivos _maven.repositories.
fonte
Essa é uma das coisas mais irritantes sobre o Maven. Para mim, acontece o seguinte: Se eu adicionar uma dependência solicitando mais dependências e mais e mais, mas tiver uma conexão lenta, ela será interrompida durante o download e o tempo limite. Embora o tempo limite seja esgotado, todas as dependências ainda não buscadas são marcadas com marcadores de posição no cache .m2 e o Maven não irá (nunca) buscá-lo, a menos que eu remova a entrada do marcador de posição do cache (como indicado anteriormente) removendo-o.
Até onde eu vejo, o Maven ou, mais precisamente, o plug-in do Eclipse Maven tem um bug sobre isso. Alguém deve relatar isso.
fonte
Você precisa verificar o arquivo settings.xml no
<maven_home>/conf
diretóriofonte
Eu tenho o mesmo erro com a dependência android-maps-utils. Usar o pacote do tipo aar na seção de dependência resolve meu problema. Por padrão, o tipo é jar, portanto, pode ser verificado que tipo de dependência no repositório é baixado.
fonte
Para corrigir esse problema no Eclipse:
1) Adicione a dependência abaixo no Maven pom.xml e salve o arquivo pom.xml.
2) Vá para o projeto >> Maven >> Atualizar Projeto
selecione o projeto e clique em OK.
3) Etapa opcional, se não for resolvida até a etapa 2, faça a etapa abaixo depois de executar a etapa 1
Vá para o projeto >> Maven >> Atualizar projeto >> marque a caixa de seleção 'Forçar atualização de snapshots / liberações'
selecione o projeto e clique em OK.
fonte
As versões anteriores do maven não forçaram a verificação de versões ausentes quando usadas -U com a instalação limpa do mvn, apenas os instantâneos, embora a versão mais recente suporte isso.
Para alguém ainda lutando com a versão anterior, o seguinte pode ser útil:
No Windows:
No Linux:
Sempre que o maven não puder baixar dependências por qualquer motivo (conectividade / não existe, etc.), ele adicionará o ".error = Não foi possível transferir o artefato" no arquivo dependency-name.lastUpdate na respectiva pasta, no diretório $ home / .m2. A remoção desses arquivos forçará o maven a tentar buscar as dependências novamente.
fonte
É importante acrescentar que a principal diferença de execução
mvn
com -U e sem -U é que-U
substituirá os frascos do SNAPSHOT local pelos frascos do SNAPSHOT remotos.Frascos INSTANTÂNEOS Locais criados a partir do local
mvn install
nos casos em que você tem outros módulos do seu proj que geram frascos.fonte
-U é usado para forçar a atualização do Repo. Usar
fonte
Eu tentei todas as respostas aqui, mas nada parecia funcionar. Reiniciei meu computador primeiro e depois executei
mvn clean install -U
. Isso resolveu meu problema.fonte
O que o maven faz é baixar todas as dependências do seu projeto no repositório local (pasta .m2). Por causa da Internet causar problemas no seu repositório local, seu projeto está enfrentando problemas. Não tenho certeza se isso certamente o ajudará ou não, mas você pode tentar excluir todos os arquivos na pasta do repositório dentro da pasta .m2. Como não haveria nada no repositório local, o maven seria forçado a baixar as dependências novamente, forçando uma atualização. Geralmente, a pasta .m2 está localizada em c: users: [nome de usuário] :. m2
fonte
Eu tive esse problema por um motivo diferente. Fui ao repositório maven https://mvnrepository.com procurando a versão mais recente do spring core, que na época era 5.0.0.M3 / O repositório me mostrou essa entrada para o meu pom.xml:
Por mais ingênuo que eu sou, presumi que o comentário estava me dizendo que o jar está localizado no repositório padrão.
No entanto, após muitas batidas de cabeça, vi uma nota logo abaixo do xml dizendo "Nota: este artefato está localizado no repositório Alfresco Public ( https://artifacts.alfresco.com/nexus/content/repositories/public/ ) "
Portanto, o comentário no XML é completamente enganador. O frasco está localizado em outro arquivo, e foi por isso que Maven não conseguiu encontrá-lo!
fonte
Podemos forçar a atualização mais recente do repositório de release e snapshot com o comando abaixo:
fonte
Eu tive o mesmo erro e executar
mvn install -U
e, em seguida, funcionarmvn install
funcionou para mim.fonte
Corri para isso recentemente e executando o seguinte corrigiu todos os problemas
fonte
-fae,--fail-at-end Only fail the build afterwards; allow all non-impacted builds to continue
Parece uma maneira estranha de fixar dependências não actualizadas externos ..mvn clean install -U
não funciona No entantomvn -U clean
seguido pormvn clean install
faz.fonte