¿Cómo configurar la ruta de compilación de Eclipse para usar las dependencias de Maven?


124

Me gustaría aprovechar las características que proporciona Maven para administrar las dependencias en un proyecto. Mi breve comprensión de cómo funciona Maven es que adquirirá los JAR necesarios y luego construirá el proyecto con estas bibliotecas.

Actualmente tengo un archivo POM simple configurado como prueba:

<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 administrar las dependencias, generalmente agrego el proyecto o JAR a la ruta de compilación y luego podré compilar mi proyecto.

Pero cuando se usa M2Eclipse, las dependencias no se agregan automáticamente a la ruta de compilación. ¿Hay alguna configuración para que Eclipse sepa que Maven está administrando las dependencias?

Respuestas:


116

Si hace clic con el botón derecho en su proyecto, debería haber una opción en "maven" para "habilitar la gestión de dependencias". Eso es.


2
m2eclipse no hace esto de manera predeterminada si importa un proyecto creado con mvn eclipse: eclipse, por lo que esto siempre parece hacer tropezar a las personas.
mate b

28
En realidad ya estaba habilitado para mi proyecto. ¿Tal vez porque elegí agregar un archivo POM a un proyecto existente? Sin embargo, hacer Maven> Actualizar configuración del proyecto parece haberlo solucionado. También fue su respuesta lo que finalmente me llevó a descubrir esa barra de herramientas donde podía arreglar el proyecto. Muchas gracias
James Goodwin

12
¿Qué sucede si no hay una opción "Maven" en el menú del botón derecho, aunque parece que tengo instalado m2eclipse?
dfrankow

85
¡Ah, "Configure" => "Convert to Maven Project" es tu amigo!
dfrankow

2
@dfrankow ¿y si no existe la opción "Configurar" => "Convertir a proyecto Maven"?
vasilakisfil

67

si ejecutas

mvn eclipse:clean

seguido por

mvn eclipse:eclipse

if preparará el .classpatharchivo eclipse para usted. Es decir, estos comandos se ejecutan contra Maven desde la línea de comandos, es decir, fuera del eclipse.


Tenga en cuenta que esto funciona mediante el uso de una variable classpath (M2_REPO) para referirse a sus dependencias, no utiliza m2eclipse y no creo que recoja y dependencias que agregue a medida que trabaja en el proyecto, pero es genial para obtener el configuración inicial en marcha
mate b

@matt b: necesita rehacer mvn eclipse: eclipse cada vez que cambian sus dependencias.
Buhb

Para agregar a lo que dijo Buhb, haga mnv eclipse: eclipse en la línea de comando y actualice el proyecto Eclipse cada vez que agregue más detalles a pom.xml.
Binil Thomas

55
No hay necesidad de esto cuando se utiliza el complemento m2eclipse.
Pascal Thivent

3
Estoy usando el complemento m2eclipse y estaba experimentando el problema después de importar un proyecto maven existente en eclipse. Haciendo mvn eclipse:cleany mvn eclipse:eclipserealmente solucionó el problema para mí.
aioobe

29

Supongo que está usando m2eclipse como lo mencionó. Sin embargo, no está claro si creó su proyecto en Eclipse o no, así que intentaré cubrir todos los casos.

  1. Si creó un proyecto "Java" en Eclipse (Ctrl + N> Proyecto Java), haga clic con el botón derecho en el proyecto en la vista Explorador de paquetes y vaya a Maven> Habilitar administración de dependencias (dependiendo de la estructura inicial del proyecto, puede modificar para que coincida con el de Maven, por ejemplo, agregando src/javaa las carpetas de origen en la ruta de compilación).

  2. Si creó un "Proyecto Maven" en Eclipse (Ctrl + N> Proyecto Maven), entonces ya debería estar "Listo para Maven".

  3. Si creó un proyecto Maven fuera de Eclipse (manualmente o con un arquetipo), simplemente impórtelo en Eclipse ( haga clic con el botón derecho en la vista Explorador de paquetes y seleccione Importar ...> Proyectos Maven ) y estará "listo para Maven".

Ahora, para agregar una dependencia, haga clic derecho en el proyecto y seleccione Maven> Agregar dependencia ) o edite el pom manualmente.

PD: evita usar el complemento maven-eclipse si estás usando m2eclipse. No hay absolutamente ninguna necesidad, será confuso, generará algún desorden. No, realmente, no lo uses a menos que realmente sepas lo que estás haciendo.


2
Me acabo de enterar de que el complemento maven-eclipse fue la causa de mis extraños errores de dependencia no resueltos. ¡Gracias!
vaughan

1
Acabo de usar EclipseNeon descargado del sitio oficial. No hay ninguna opción de Maven en el menú después de crear el proyecto estándar de Java. ¿Necesitamos instalar algo por separado o todo ya está descargado con Neon?
Ewoks

@Pascal Thivent, importé el proyecto Maven. No puedo encontrar la solución para este
Syed

19

Agregue esto al archivo .classpath.

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

Gracias


1
sí, necesito agregarlo manualmente en todas partes durante los últimos años ... ¿por qué no implementan complementos de eclipse para reconocer automáticamente las dependencias de Maven?
maquinilla de afeitar

1
Gracias por esta solución Esto funcionó para mí. Accidentalmente borré archivos .project y .classpath. Esta solución me funcionó para agregar dependencias de Maven en la ruta de clase,
Tahir Mehmood

El acceso directo para generar automáticamente el archivo .classpath anterior es Proyecto -> Maven -> Actualizar proyecto. De lo contrario, simplemente Alt + F5
Venkateswara Rao

A mí también me funcionó. Resolví la mayoría de mis dependencias faltantes, pero todavía tengo un par de problemas, por lo que me pregunto si las soluciones más fáciles de usar no funcionan porque hay un pequeño error en alguna parte (pero este comportamiento no ayuda a depurar el problema ...)
xenoid

14

Haga clic derecho en el proyecto Configurar> convertir a proyecto Maven

Luego puede ver todos los menús relacionados con Maven para su proyecto.


la forma correcta si no creaste un proyecto mvn en primer lugar
Hannes Schneidermayer

10

Me gustó esto ...

Haga clic derecho en el proyecto -> configurar -> convertir a proyecto maven. Haga clic derecho en el proyecto -> maven -> agregar dependencias.


5

En Eclipse (Marte) ve a:

Propiedades del proyecto -> Maven. Asegúrese de que "Resolver dependencias de proyectos de espacio de trabajo" esté deshabilitado .


Esto no resolvió el problema original, sin embargo, resolvió otro problema persistente que he tenido durante semanas. Después de deshabilitar esa opción, mi proyecto, que solo se ejecutaba desde una línea de comando maven, ¡ahora se está ejecutando nuevamente dentro de eclipse! ¡Gracias!
Bill Hileman

4

No encontré el maven ni configuré menús, pero encontré el siguiente botón que resolvió mi problema:

ingrese la descripción de la imagen aquí


2

Cuando m2eclipse se instala correctamente, debería agregar dependencias automáticamente. Sin embargo, debe generar los archivos del proyecto eclipse ingresando:

mvn eclipse:m2eclipse

o, alternativamente, si no usa m2eclipse:

mvn eclipse:eclipse

3
Atención: desde la versión 2.8 maven-eclipse-plugin ya no es compatible con "eclipse: m2eclipse" (no se pudo encontrar la razón / información por qué)
Wolkenarchitekt

1

Tuve una ligera variación que causó algunos problemas: múltiples subproyectos dentro de un proyecto. En este caso, necesitaba ir a cada carpeta individual que contenía un POM, ejecutar el comando mvn eclipse: eclipse y luego copiar / fusionar manualmente las entradas de classpath en el archivo de classpath de mi proyecto.


1

Para versiones más recientes de Eclipse (> = Mars), haga clic derecho en proyecto> configurar> convertir a proyecto Maven


1

Agregar mis respuestas por un par de razones:

  • De alguna manera, ninguna de las respuestas enumeradas resolvió directamente mi problema.
  • No pude encontrar "Habilitar la gestión de dependencias" en Maven. Estoy usando Eclipse 4.4.2 build el miércoles 4 de febrero de 2015.

Lo que me ayudó fue otra opción bajo Maven llamada "Proyecto de actualización" y luego cuando hago clic en esta ventana se abre que tiene una casilla que dice "Forzar actualización de instantáneas / lanzamientos". El verdadero propósito de esta casilla de verificación es diferente, lo sé, pero de alguna manera resolvió el problema de las dependencias. ingrese la descripción de la imagen aquí


1

Nada de eso resolvió mi problema. pero lo que hice fue hacer clic en pom.xml, hay una pestaña en la parte inferior llamada dependencias. en esta pestaña se divide en 2 secciones, una llamada dependencias y otra llamada gestión de dependencias. seleccione cada cosa en la sección de dependencia y haga clic en Agregar para estar bajo el control de administración de dependencias. cierra y vuelve a abrir tu proyecto.


0

Tal vez podría buscar en maven-eclipse-plugin en lugar de M2Eclipse.

Hay que añadir básicamente maven-Eclipse-la configuración del complemento a su pom.xml y luego ejecutar mvn eclipse:eclipselo que generará los requeridos .projecty .classpatharchivos para Eclipse. Entonces tendrá la ruta de compilación correcta en Eclipse.


Eclipse: Eclipse es malo, añade todas las bibliotecas, uno por uno, a sus dependencias en lugar de depender de Maven
navaja

0

Asegúrese de que su POM siga la convención de nomenclatura y que esté nombrado en letras minúsculas como pom.xmly NOPOM.xml .

En mi caso, todo estaba bien, pero Eclipse aún se quejaba al intentar hacer clic derecho y Update project configuration- me dijo que el POM no se podía leer. Cambió el nombre a minúsculas - pom.xmlde POM.xml- y funcionó.


0

También conocí este problema. Cuando agrego dependencias en el pom.xml, revisé la carpeta local/Users/xyz/.m2/ y los frascos ya están descargados allí, pero no puedo agregar la ruta de compilación del eclipse.

Mi versión de eclipse: Mars.2 Release (4.5.2)

haga clic con el botón derecho en proyecto > Maven > Habilitar resolución de espacio de trabajo

Y esto resolvió mi problema.


0

Por lo general, puede copiar el archivo .classpath de un proyecto de trabajo ya que no hay nada específico del proyecto aquí, suponiendo que esté estructurado como un proyecto Maven estándar.


0

Esto funcionó para mí en Eclipse Oxygen (4.7.0):

Haga clic con el botón derecho en Proyecto -> Maven -> Seleccionar perfiles de Maven ... luego marque la casilla Proxy de repositorio, presione OK.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.