Como atualizar o repositório maven no Eclipse?

87

Supondo que você já esteja usando o plugin m2eclipse , o que pode fazer quando ele não atualiza as dependências para o mais recente em seu repo?

Por exemplo, na linha de comando, você pode apenas adicionar o -Usinalizador como em

mvn clean install -U 

… Para forçar a atualização das dependências. Existe algo assim no Eclipse? (Nem sempre parece pegar as atualizações mais recentes.)

Stephane Grenier
fonte

Respostas:

108

Você pode clicar com o botão direito do mouse em seu projeto, Maven> Atualizar projeto ... , selecionar a caixa de seleção Forçar atualização de instantâneos / versões e clicar em OK.

Pascal Thivent
fonte
3
Isso não é completamente igual a -U: quando você tem um arquivo de metadados antigo que faz referência a uma versão que não existe nos repositórios, atualizar os instantâneos não funciona. Nesta situação, você deve verificar qual eclipse binário do maven está usando e executar no console /path/to/bin/mvn clean install -Upara obter o arquivo de metadados atualizado.
Joni de
8
não há opção de Update Snapshotsno meu eclipse índigo, você tem alguma ideia de como fazer isso
Caça
2
@Hunt Você pode selecionar a caixa de seleção "Atualizar instantâneos" na configuração de compilação do maven no eclipse para ter as dependências atualizadas.
Gaʀʀʏ
Na verdade, nem sempre funciona. Tenho que alterar o número da versão para um número errado e, em seguida, alterá-lo novamente para a versão correta para que funcione.
Gonzalo Aguilar Delgado de
1
@Hunt no eclipse mais recente existe a opção de "Projeto de atualização".
TechnoCrat
46

Nas versões mais recentes do Eclipse que usam o plug-in M2E, é:

Clique com o botão direito no (s) seu (s) projeto (s) -> Maven -> Atualizar Projeto ...

Na caixa de diálogo a seguir, há uma caixa de seleção para forçar a atualização ("Forçar atualização de instantâneos / lançamentos")

Roland Schneider
fonte
3
Estou usando o eclipse Kepler. Tive que verificar "Forçar atualização de instantâneos / lançamentos" para corrigir o problema. THX!
arun
24

Clique com o botão direito no seu projeto e escolha Maven > Update Snapshots. Além disso, você pode definir "atualizar projetos Maven na inicialização" emWindow > Preferences > Maven

ATUALIZAÇÃO : Em versões mais recentes do Eclipse: Maven > Update Project. Certifique-se de que a opção "Force Update of Snapshots / Releases" esteja marcada.

Eugene Ryzhikov
fonte
22

Às vezes, as dependências não são atualizadas mesmo com a opção Maven-> Atualizar Projeto-> Forçar Atualização marcada usando o plugin m2eclipse.

Caso não funcione para mais ninguém, este método funcionou para mim:

  • mvn eclipse:eclipse

    Isso atualizará seu arquivo .classpath com as novas dependências enquanto preserva suas configurações .project e outros arquivos de configuração do eclipse.

Se quiser limpar suas configurações antigas por qualquer motivo, você pode executar:

  • mvn eclipse:clean
  • mvn eclipse:eclipse

    mvn eclipse: clean apagará suas configurações antigas, então mvn eclipse: eclipse criará novos arquivos .project , .classpath e outros arquivos de configuração do eclipse.

lkisac
fonte
3
Funcionou quando descobri que "Force Update" não estava funcionando, obrigado!
Leon Chen
Obrigado, eu queria uma maneira sem usar m2e e é isso
sam
Impressionante! o: clean consertou para mim.
Erwin Lengkeek
2

Se o instantâneo de atualização do Maven não funcionar e se você tiver o Spring Tooling, uma maneira interessante é remover

  • Clique com o botão direito em seu projeto e em Maven> Desativar Maven Nature
  • Clique com o botão direito do mouse em seu projeto e em Spring Tools> Update Maven Dependencies
  • Após "CONSTRUIR O SUCESSO", clique com o botão direito do mouse em seu projeto e em seguida Configure> Converter Projeto Maven

Observação: o instantâneo de atualização do Maven às vezes para de funcionar se você usar qualquer outra coisa, ou seja, eclipse: eclipse ou Spring Tooling

Nitin Dandriyal
fonte
Tentei as soluções de maior classificação e nenhuma delas funcionou. Isso foi o que funcionou para mim, obrigado.
DS.