Como configurar o caminho de construção do Eclipse para usar dependências do Maven?

124

Gostaria de aproveitar os recursos que o Maven fornece para gerenciar dependências em um projeto. Meu breve entendimento de como o Maven funciona é que ele irá adquirir os JARs necessários e depois construir o projeto com essas bibliotecas.

Atualmente, tenho um arquivo POM simples configurado como teste:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.jamesgoodwin.test</groupId>
  <artifactId>com.jamesgoodwin.test</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <build>
  </build>
  <dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>3.0.0.RELEASE</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
  </dependencies>
</project>

Para gerenciar dependências, normalmente adiciono o projeto ou JAR ao caminho da compilação e, em seguida, poderei compilar o meu projeto.

Porém, ao usar o M2Eclipse, as dependências não são adicionadas automaticamente ao caminho da construção. Existe alguma configuração para informar ao Eclipse que o Maven está gerenciando as dependências?

James Goodwin
fonte

Respostas:

116

Se você clicar com o botão direito do mouse no seu projeto, deve haver uma opção em "maven" para "ativar o gerenciamento de dependências". É isso aí.

Buhb
fonte
2
O m2eclipse não faz isso por padrão se você importar um projeto criado com o mvn eclipse: eclipse, portanto isso sempre parece atrapalhar as pessoas.
Matt b
28
Na verdade, ele já estava ativado para o meu projeto. Talvez porque eu escolhi adicionar um arquivo POM a um projeto existente? No entanto, fazer Maven> Atualizar a configuração do projeto parece ter corrigido isso para mim. Também foi sua resposta que me levou a descobrir a barra de ferramentas onde eu poderia consertar o projeto. Muito obrigado
James Goodwin
12
E se não houver a opção "Maven" no menu do botão direito, mesmo que pareça ter o m2eclipse instalado?
dfrankow
85
Ah, "Configurar" => "Converter em projeto Maven" é seu amigo!
dfrankow
2
@dfrankow e se a opção "Configurar" => "Converter em projeto Maven" não existir?
vasilakisfil
67

se você executar

mvn eclipse:clean

Seguido por

mvn eclipse:eclipse

if irá preparar o .classpatharquivo eclipse para você. Ou seja, esses comandos são executados no maven a partir da linha de comando, ou seja, fora do eclipse.

davek
fonte
Observe que isso funciona usando uma variável de caminho de classe (M2_REPO) para se referir às suas dependências, ele não usa m2eclipse e eu não acredito que ele pegue e as dependências que você adicionar ao trabalhar no projeto - mas é ótimo para obter o configuração inicial indo
matt b
@matt b: Você precisa refazer o mvn eclipse: eclipse toda vez que suas dependências mudarem.
Buhb
Para adicionar o que o Buhb disse, faça mnv eclipse: eclipse na linha de comandos e atualize o projeto Eclipse sempre que adicionar mais deps ao pom.xml.
precisa saber é o seguinte
5
Não há necessidade disso ao usar o plugin m2eclipse.
Pascal Thivent
3
Estou usando o plugin m2eclipse e estava enfrentando o problema após importar um projeto maven existente para o eclipse. Fazendo mvn eclipse:cleane mvn eclipse:eclipserealmente corrigiu o problema para mim.
aioobe
29

Suponho que você esteja usando o m2eclipse como o mencionou. No entanto, não está claro se você criou seu projeto no Eclipse ou não, então tentarei cobrir todos os casos.

  1. Se você criou um projeto "Java" no Eclipse (Ctrl + N> Projeto Java), clique com o botão direito do mouse no projeto na visualização Package Explorer e vá para Maven> Ativar Gerenciamento de Dependência (dependendo da estrutura inicial do projeto, você pode modificar para coincidir com o do maven, por exemplo, adicionando src/javaàs pastas de origem no caminho da compilação).

  2. Se você criou um "Projeto Maven" no Eclipse (Ctrl + N> Projeto Maven), ele já deve estar "Pronto para o Maven".

  3. Se você criou um projeto Maven fora do Eclipse (manualmente ou com um arquétipo), basta importá- lo no Eclipse ( clique com o botão direito do mouse o na visualização Package Explorer e selecione Importar ...> Projetos Maven ) e ele estará "Maven ready".

Agora, para adicionar uma dependência, clique com o botão direito do mouse no projeto e selecione Maven> Adicionar dependência ) ou edite o pom manualmente.

PS: evite usar o maven-eclipse-plugin se você estiver usando o m2eclipse. Não há absolutamente nenhuma necessidade, será confuso, gerará alguma confusão. Não, realmente, não o use, a menos que você realmente saiba o que está fazendo.

Pascal Thivent
fonte
2
Acabei de descobrir que o maven-eclipse-plugin foi a causa dos meus estranhos erros de dependência não resolvidos. Obrigado!
Vaughan
1
Acabei de usar o EclipseNeon baixado do site oficial. Não há opção Maven no menu depois que criei o projeto java padrão. Precisamos instalar algo separadamente ou tudo já foi baixado com o Neon?
Ewoks
@ Pascal Thivent, eu importei o projeto Maven. Não consigo encontrar a solução para este.
Syed
19

Adicione isso ao arquivo .classpath ..

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
    <attributes>
        <attribute name="maven.pomderived" value="true"/>
    </attributes>
</classpathentry>

THX

Apurva Singh
fonte
1
Sim, eu preciso adicionar isso manualmente em todos os lugares nos últimos anos .... Por que eles não impõem plugins do Eclipse para recongnizar automaticamente as dependências do Maven?
navalha
1
Obrigado por esta solução. Isso funcionou para mim. Eu apaguei acidentalmente arquivos .project e .classpath. Esta solução funcionou para mim para adicionar dependências Maven no caminho de classe,
Tahir Mehmood
O atalho para gerar arquivo .classpath acima é automaticamente Projeto -> Maven -> Update Project Caso contrário, simplesmente Alt + F5
Venkateswara Rao
Trabalhou para mim também. Resolvi a maioria das minhas dependências ausentes, mas ainda tenho alguns problemas, então me pergunto se as soluções mais amigáveis ​​não estão funcionando porque há um pequeno erro em algum lugar (mas esse comportamento não ajuda a depurar o problema ...)
xenoid 31/01/19
14

Clique com o botão direito do mouse no projeto Configurar> converter em projeto Maven

Então você pode ver todo o menu relacionado ao Maven para seu projeto.

DevJav
fonte
o caminho certo se você didnt criar um projeto mvn em primeiro lugar
Hannes Schneidermayer
10

Eu fiz assim ..

Clique com o botão direito do mouse no projeto -> configurar -> converter em projeto maven. Clique com o botão direito do mouse no projeto -> maven -> adicionar dependências.

madhu_karnati
fonte
5

Em Eclipse (Marte), vá para:

Propriedades do projeto -> Maven. Verifique se "Resolver dependências de projetos da área de trabalho" está desativado .

Thomas Beer
fonte
Isso não resolveu o problema original, mas resolveu outro problema irritante que eu tenho tido há semanas - Depois de desativar essa opção, meu projeto, que estava sendo executado apenas a partir de uma linha de comando, agora está sendo executado novamente dentro do eclipse! Obrigado!
Bill Hileman
4

Não encontrei o maven ou configure os menus, mas encontrei o seguinte botão que resolveu o meu problema:

insira a descrição da imagem aqui

Borjab
fonte
2

Quando o m2eclipse é instalado corretamente, ele deve adicionar dependências automaticamente. No entanto, você deve gerar os arquivos do projeto eclipse digitando:

mvn eclipse:m2eclipse

ou, alternativamente, se você não usar o m2eclipse:

mvn eclipse:eclipse
EJB
fonte
3
Atenção: desde a versão 2.8 maven-eclipse-plugin não suporta "eclipse: m2eclipse" mais (não conseguia encontrar razão / informações porque)
Wolkenarchitekt
1

Eu tive uma pequena variação que causou alguns problemas - vários subprojetos em um projeto. Nesse caso, eu precisava ir para cada pasta individual que continha um POM, executar o comando mvn eclipse: eclipse e copiar / mesclar manualmente as entradas do caminho de classe no meu arquivo de caminho de classe do projeto.

Mearde
fonte
1

Para versões mais recentes do Eclipse (> = Mars), clique com o botão direito do mouse em projeto> configurar> converter em projeto Maven

JBoy
fonte
1

Adicionando minhas respostas por alguns motivos:

  • De alguma forma, nenhuma das respostas listadas resolveu diretamente o meu problema.
  • Não consegui encontrar "Ativar gerenciamento de dependência" no Maven. Estou usando a versão Eclipse 4.4.2 em quarta-feira, 4 de fevereiro de 2015.

O que me ajudou foi outra opção no Maven chamada de "Atualizar Projeto" e, quando clico nela, é aberta uma janela com uma caixa de seleção que diz "Forçar atualização do Snapshot / Releases". O real objetivo desta caixa de seleção é diferente, eu sei, mas de alguma forma isso resolveu o problema das dependências. insira a descrição da imagem aqui

Saurabh Patil
fonte
1

Nada disso resolveu meu problema. mas o que eu fiz foi se clicar no pom.xml, há uma guia na parte inferior chamada dependências. nesta guia, ele é dividido em 2 seções, uma chamada dependências e outra chamada gerenciamento de dependências. selecione tudo na seção de dependência e clique em adicionar para estar sob o controle de gerenciamento de dependência. feche e reabra seu projeto.

amralieg
fonte
0

Talvez você possa procurar no maven-eclipse-plugin em vez do M2Eclipse.

Lá, você basicamente adiciona a configuração do maven-eclipse-plugin ao seu pom.xml e depois executa o mvn eclipse:eclipseque irá gerar os arquivos .projecte necessários .classpathpara o Eclipse. Então você terá o caminho de construção correto no Eclipse.

Juha Syrjälä
fonte
eclipse: eclipse é ruim, adiciona todas as bibliotecas, uma a uma, às suas dependências, em vez de depender do Maven
razor
0

Verifique se o POM segue a convenção de nomenclatura e se está nomeado em letras minúsculas como pom.xmle NOT POM.xml.

No meu caso, tudo estava certo, mas o Eclipse ainda reclamou ao tentar clicar com o botão direito e Update project configuration me disse que o POM não podia ser lido. Alterou o nome para minúsculas - pom.xmlde POM.xml- e funcionou.

Karun
fonte
0

Também conheci esse problema. Quando adiciono dependências no pom.xml, verifiquei na pasta local/Users/xyz/.m2/ e os jars já foram baixados lá, mas não foi possível adicionar o caminho de construção do eclipse.

Minha versão do eclipse: Mars.2 Release (4.5.2)

clique com o botão direito do mouse em projeto > Maven > Ativar resolução da área de trabalho

E isso resolveu meu problema.

Eddy
fonte
0

Normalmente, você pode copiar o arquivo .classpath de um projeto em funcionamento, pois não há nada específico aqui, supondo que você esteja estruturado como um projeto Maven padrão.

Puneet Lamba
fonte
0

Isso funcionou para mim no Eclipse Oxygen (4.7.0):

Clique com o botão direito do mouse em Projeto -> Maven -> Selecionar perfis do Maven ... e marque a caixa Proxy de repositório, pressione OK.

r590
fonte