Importar un proyecto de Maven en Eclipse desde Git

100

¿Cómo puedo obtener el efecto de elegir importar desde Maven y Git y hacer que Eclipse genere correctamente mi proyecto?

Para obtener mi proyecto en Eclipse, puedo elegir Archivo-> importar-> maven y luego obtengo todos los proyectos de Maven importados y puedo construir bien, o puedo elegir Archivo-> importar-> git y hacer un nuevo proyecto que ignore el pom .xml y no genera el proyecto correctamente.

Parece que puedo hacer uno u otro, pero no combinar ambos, por lo que obtengo un proyecto generado correctamente.

Arthur Ulfeldt
fuente

Respuestas:

103

Eclipse Indigo + M2Eclipse 1.0 lo hace muy fácil.

Si aún no tiene el conector Git para M2Eclipse, instálelo. M2Eclipse le ayudará en el menú Importar.

  1. Seleccione el menú contextual "Importar ..." en la vista Explorador de paquetes.
  2. Seleccione la opción "Ver proyectos de Maven desde SCM" en la categoría Maven
  3. En la ventana que se presenta, elija el enlace "Buscar más conectores SCM en m2e Marketplace
  4. Buscar conector para Git ... instalar ... reiniciar

Tenga en cuenta que en el cuadro de búsqueda puede que tenga que ingresar "EGit" en lugar de "Git" para encontrar el conector correcto.

Una vez hecho esto, simplemente vaya al repositorio de EGit, abra el menú contextual del directorio de trabajo y seleccione "Importar proyectos Maven ...".

¡Hecho!

Sri Sankaran
fuente
4
He hecho esto en Indigo, pero en Juno actualmente hay un error que impide que se instale m2e-git SCM. bugs.eclipse.org/bugs/…
Codey McCodeface
1
@ medPhys-pl Ese parece ser un problema relacionado con m2e y EGit y no con Git en sí.
Sri Sankaran
1
"fácil" es relativo. Todo el mercado de eclipse es un desastre , los repositorios de maven son un desastre porque no rastrean la compatibilidad, por lo que terminas con docenas de copias del paquete casi idéntico, y ahora agregar un "mercado de m2e" no mejora las cosas .
Ha SALIDO - Anony-Mousse
1
@ Anony-Mousse: Estoy de acuerdo en que "fácil" es relativo. Sin embargo, lo usé para describir mi experiencia al abordar la pregunta original (importar a Eclipse desde un repositorio de Git). Sus quejas pueden ser válidas, pero no son los problemas que se están abordando.
Sri Sankaran
2
Hay una corrección en el Paso 4, debería ser "..conector para EGit ..". Para ser específico, busque m2e-egit en el mercado.
nanospeck
41

Realizaría un clon de git a través de la línea de comando (fuera de Eclipse) y luego usaría Archivo -> Importar ... -> Proyectos Maven existentes .

Se entenderá que sus proyectos utilizan Git y Maven. Es la forma más rápida y confiable de importar IMO.

joelittlejohn
fuente
3
Sí, esto definitivamente funciona, pero el m2 más nuevo finalmente tiene una buena integración con git y svn. Como han señalado otros, EGit 1.0.0, m2e 1.0 y m2e-egit 0.13 le darán git -> materialize mvn project to eclipse en un solo paso.
thetoolman
Hmm, tuve que hacer clic derecho en el proyecto y usar "Equipo> Compartir proyecto", etc., para que EGit reconociera que se trata de un proyecto Git.
Brian McCutchon
19

Paso 1: Configurar Eclipse

En primer lugar, deberá tener instalados algunos complementos de Eclipse. Por lo tanto, use la función de instalación del software eclipse IDE en el menú desplegable de ayuda → Instale nuevo software y agregue un enlace al Sitio de software disponible, luego instálelo.

  1. Complemento GIT (EGIT): http://download.eclipse.org/egit/updates
  2. Complemento Eclipse Maven (M2Eclipse): http://download.eclipse.org/technology/m2e/releases
  3. Controlador Maven SCM para EGit (m2e-egit)

    Instalar desde M2E Marketplace (Configuración → Maven → Descubrimiento → Abrir catálogo y buscar "m2e-egit")


Paso 2: clona el repositorio

Clona (descarga) tus proyectos Maven desde Git

Consulte los proyectos de Maven que no son eclipse de Git (Archivo → Importar ... → Maven → Consulte los proyectos de Maven de SCM)

Archivo → Importar ... → Maven → Ver proyectos Maven de SCM

Ahora agregue su enlace de repositorio de git al campo SCM URI, luego haga clic en siguiente y finalice.

Tharindu Rajarathna
fuente
18

A partir de este escrito (actualizado), una configuración de trabajo es la siguiente:

  1. Eclipse 3.8 (sitio de actualización de Eclipse Indigo)
  2. EGit 1.3.0 (sitio de actualización de Eclipse Indigo)
  3. m2e 1.0.200 (sitio de actualización de Eclipse Indigo)
  4. m2e-egit 0.14.0 (mercado de m2e al agregar un conector)

Probado en Ubuntu Raring.

Ciertamente puede "Importar" -> "Maven" -> "Ver proyectos Maven desde SCM", y esta es la forma más rápida. Sin embargo, esta importación directa actualmente no le da control sobre el nombre de la carpeta del repositorio clonado. Puede que sea mejor trabajar desde la vista "Repositorio Git" y realizar un "Clonar desde un Repositorio Git y agregar el clon a esta vista", seguido de "Importar proyectos Maven" de dicho clon; la forma más larga sería hacer su clonación manual y luego "Agregar un Repositorio Git local existente a esta vista", seguido nuevamente por un "Importar Proyectos Maven". En cualquier caso, tiene control total sobre la carpeta clonada.

Un comentario final sobre un tema secundario que me hizo llorar de frustración. Hasta donde yo sé, si el repositorio clonado se encuentra en la raíz de su espacio de trabajo de Eclipse, y la jerarquía de archivos de su proyecto Maven tiene un POM en su raíz, entonces la importación de dicho proyecto raíz cambiará el nombre de la carpeta clonada (con la plantilla que eligió, valores predeterminados a [artifactId]). Sin cambiar la estructura de su proyecto y sin mantener los archivos fuera de su espacio de trabajo, puede solucionar fácilmente este problema clonando en una subcarpeta de la carpeta del espacio de trabajo.

Luca Geretti
fuente
13

He estado probando esto para mi proyecto.

  1. Eclispe Indigo
  2. "Ayuda> Instalar nuevo software" Habilite / instale los complementos oficiales de Git en "Eclipse Git Plugin .." e instale el lote.
  3. Habilite el conector Maven / EGit con estas instrucciones ¿Cómo se consigue que la integración de git funcione con m2eclipse?
  4. Cambie a la perspectiva del repositorio de Git. Haz clic derecho y pega la URL de git del proyecto. Todos los valores predeterminados deberían funcionar. Es posible que desee cambiar la carpeta de instalación que adivina.
  5. Expanda el repositorio clonado y haga clic derecho en "Árbol de trabajo" y seleccione "Importar proyectos Maven ...".
  6. Cambie a la perspectiva de Java. Haga clic derecho en el proyecto y seleccione "Equipo> Compartir proyecto". Seleccione "Git" y asegúrese de marcar la casilla "Usar o crear un repositorio en la carpeta principal del proyecto".
simbo1905
fuente
1
Sí, hice lo mismo. No entienda por qué m2e-egit no realiza el paso 6. automáticamente.
xmedeko
6

Aquí está mi solución alternativa, esta es una solución a estos problemas:

  • No puede instalar m2e-egit (aparece un error en Juno)
  • Convertir un proyecto general (conectado a su repositorio de Git) en un proyecto de Maven no le está funcionando (el paso Importar proyectos de Maven parece esencial)
  • La importación de proyectos Maven desde su repositorio en el sistema de archivos no muestra el proyecto conectado a Git.

  1. Configure su repositorio de Git en la perspectiva Exploración del repositorio de Git .
    • Cambie a la perspectiva de Java, Importar> Proyectos Maven existentes
    • Busque su pago de Git en el sistema de archivos, seleccione el directorio que contiene el archivo pom.xml. Termina la importación; notará que estos proyectos no están conectados a Git. :-(
    • Elimine estos proyectos, pero NO ELIMINE DEL SISTEMA DE ARCHIVOS . No queremos que se elimine nuestro clon; esta tarea también deja atrás el archivo .project para que podamos importar en el siguiente paso.
  2. Regrese a la perspectiva Exploración del repositorio de Git .
    • Haga clic derecho en su repositorio, Importar proyectos ...
    • Seleccione Importar proyectos existentes
    • En el explorador a continuación, busque y seleccione el directorio que contiene el pom.xml (y el archivo .project), luego haga clic en siguiente.
    • Continúe con el asistente.
Arlo
fuente
En Eclipse Luna, funcionó después del paso 1.2 (el proyecto se conectó a Git después de la primera importación).
PJ_Finnegan
4

Importe sin instalar ningún conector adicional para Mylyn:

  1. Git RepositoriesVista abierta (Ventana-> Mostrar vista-> Repositorios Git)
  2. Presione el Clone a Git Repositorybotón y continúe con todos los pasos
  3. En el repositorio recién creado Working Directory, expanda , haga clic derecho en la carpeta con su proyecto y seleccione Import Projects. Luego elija Import existing projectso seleccione Import as general project. Si es necesario después de la importación, haga clic con el botón derecho en su proyecto y seleccione Configurar-> Convertir a proyecto Maven (y Maven-> Actualizar proyecto).
kolobok
fuente
3

Debe tener en cuenta que poner los metadatos generados bajo el control de versiones (sea git o cualquier otro scm) no es una muy buena idea si hay más de un desarrollador trabajando en el código base. Dos desarrolladores pueden tener un proyecto o una configuración de ruta de clases totalmente diferente. Solo como aviso en caso de que tenga la intención de compartir el código en algún momento ...

Peter Hägg
fuente
2

Tengo un proyecto de maven con tres submódulos que se administra en git. Los configuré en eclipse de la siguiente manera:

  1. Registré el repositorio de git con eclipse usando EGit
  2. Importé los proyectos como proyectos Maven existentes
  3. Para cada proyecto, fui Equipo | Compartir proyecto .
Tom Norton
fuente
1

Preferiría importar proyectos a Eclipse como mavenproyectos en lugar de gitproyectos. Hacer esto aún permitirá que el contenido del proyecto sea reconocido como contenido de git. Puede continuar realizando operaciones de git desde Eclipse. Como ha mencionado, lo contrario no es cierto.

La naturaleza de un proyecto en Eclipse no se basa en el SCM que contiene el proyecto, sino en el tipo de proyecto, ya sea guerra o jar, etc., que se determina automágicamente cuando el proyecto se importa como proyecto maven.

Dudaría en registrarme en metadatos específicos de SCM IDE. Hacerlo asume muchas cosas: todos los desarrolladores están usando el mismo IDE o versión del IDE, quizás la misma versión de JDK / JRE, que continúan usando la misma versión durante todo el ciclo de vida del proyecto y así sucesivamente.

Raghuram
fuente
1

¿No pueden importar como un proyecto Git y luego (si tiene la m2eclipse instalado) click derecho en el proyecto en el Explorador de paquetes > Maven> Enable Dependency Management?

dimitrisli
fuente
1
Si no está visible y tiene m2e instalado, abra el archivo .project y agregue la naturaleza maven2 usted mismo: <nombre> org.eclipse.m2e.core.maven2Builder </name>
dimitrisli
1

Después de revisar mi rama en Egit, cambié a la Vista de Java, luego usé Archivo -> Importar, Git -> Proyectos de Git, luego seleccioné el directorio maven de nivel superior. Esto fue con Eclipse Kepler.

Cachondo
fuente
-3

En lugar de generar constantemente metadatos del proyecto a través del comando import-> maven, puede generar los metadatos del proyecto una vez y colocarlos en su repositorio de git junto con el resto de su código fuente. Después de eso, el uso del comando import-> git importará un proyecto habilitado para maven adecuado, suponiendo que tenga instaladas las herramientas de maven.

Asegúrese de colocar en el sistema de control de código fuente todos los archivos del directorio del proyecto que comiencen con '.' como .classpath y .project junto con todo el contenido del directorio .settings.

Konstantin Komissarchik
fuente