IntelliJ: trabajando en múltiples proyectos


332

Construimos en maven múltiples proyectos (nombremos A, B, C). El proyecto A usa .jar del proyecto B que usa .jar del proyecto C.

Estoy modificando códigos de todos los proyectos A / B / C, (A es la aplicación MVC, B son servicios empresariales y C es una capa compartida).

La cuestión es que en Eclipse / NetBeans puedo verlos todos a la vez y es cómodo modificarlos. Sin embargo, en IDEA, tengo que abrir 3 instancias (o n instancias) de IntelliJ IDEA.

¿Me estoy perdiendo de algo? ¿Hay un mejor enfoque al usar IntelliJ? Este es el mayor inconveniente de IntelliJ para mí atm.


3
Mirando las respuestas hasta la fecha, la esencia básica que veo es que IntelliJ define lo que Eclipse llama "proyectos" como módulos y "espacios de trabajo" como proyectos. La idea es garantizar que los módulos en el mismo proyecto estén bastante relacionados. Entonces, si el proyecto A depende del proyecto B, pero ambos no tienen ninguna relación con el proyecto C, sería bueno abrir los proyectos A y B como módulos en el mismo proyecto IntelliJ, mientras se abre C en un proyecto separado en una segunda instancia de IntelliJ. Puede estar de acuerdo o en desacuerdo con el diseño, pero (suponiendo que haya captado correctamente la idea) honro el pensamiento detrás de él.
John Chesshir

Respuestas:


134

Sí, tu intuición fue buena. No deberías usar tres instancias de intellij. Puede abrir un proyecto y agregar otras 'partes' de la aplicación como módulos. Agréguelos a través del navegador del proyecto, la tecla de acceso rápido predeterminada es alt + 1


1
Estoy haciendo lo mismo: importé el proyecto principal, luego importé mi segundo proyecto usando 'módulo de importación', pero más tarde, obtuve "Estos módulos se han eliminado de la estructura de Maven: ... ¿Desea que se eliminen? del proyecto también? - Luego presiono 'No'. Pero este diálogo aparece muchas veces. ¿Que puedo hacer?
nnhthuan

99
Mejor respuesta a continuación
redDevil

3
@redDevil cuál?
Piotr Findeisen

44
@redDevil ¡No! Esta respuesta es más general, si tiene proyectos no expertos, esta respuesta es mejor ya que la respuesta más votada simplemente no los cubre. Las dos respuestas abordan diferentes situaciones y son igualmente relevantes, nadie es mejor que el otro.
luk2302

2
Esto es mejor que la respuesta "Sólo Maven", pero no ayuda si tiene proyectos no relacionados que desea que sean visibles simultáneamente (por ejemplo, acceso fácil para referirse al código de otro proyecto), o si admite una biblioteca que depende de El proyecto en el que estás enfocado. Es extremadamente frustrante que IJ no haya usado el modelo Eclipse / NetBeans aquí, es lo principal que me impide cambiar a IJ.
Manius

423

Creo que esto ha mejorado con las versiones recientes de IntelliJ. En mi versión actual (12.0.2), puede agregar cualquier cantidad de proyectos Maven separados al mismo "espacio de trabajo".

La forma más simple que he encontrado para hacer esto es hacer clic en el pequeño +ícono en la ventana "Proyectos Maven" (Ver> Ventanas de herramientas> Proyectos Maven) y luego seleccionar el archivo pom adicional que desea importar.


2
Solo para agregar: una vez que se agrega el Proyecto Maven, se cargará en el panel Proyecto si es un proyecto local.
Aram Kocharyan

99
Si estos proyectos se encuentran en diferentes repositorios git, puede marcar 'Controlar repositorios sincrónicamente' en la configuración (Configuración> Control de versiones> Git). IntelliJ mantendrá sincronizaciones, actualizaciones y selección de ramales en los múltiples proyectos.
Tim Van Laer

13
Para aquellos que son nuevos en IntelliJ y no saben dónde está la ventana "Proyectos Maven": esquina superior derecha.
dustin.schultz

1
Con la versión 2017 es diferente, consulte jetbrains.com/help/idea/2017.1/maven-projects-tool-window.html
vikramvi

3
Entonces, si necesita varios proyectos abiertos, pero son proyectos Gradle o Ant, todavía no tiene suerte. No, gracias ... Necesito poder tener los 3 abiertos, como permiten NetBeans y Eclipse. La falta de un espacio de trabajo adecuado es la razón número 1 por la que todavía no uso IJ.
Manius

216

Por favor, siga estos 2 pasos:

Paso 1 : Abra "Proyectos Maven"

ingrese la descripción de la imagen aquí

Paso 2 : Seleccione el proyecto que desea importar:

ingrese la descripción de la imagen aquí


20
Una imagen vale mas que mil palabras.
Neeraj Jain

3
Gracias, esto fue realmente útil
J. Adam

3
Esta respuesta me ayuda mucho, especialmente, para usar las capturas de pantalla. Gracias.
Chaklader Asfak Arefe

1
Esta es la respuesta que estoy buscando. Muchas gracias :)
Jerin Kurian

1
No veo la opción en mi caso:2019.3 community
Marinos Un

134

Prerrequisito

Tener todos los proyectos relacionados en el mismo directorio raíz.

Pasos

1) Primero crea un nuevo proyecto vacío

Nuevo proyecto vacio


2) Luego selecciona el directorio raíz de todos sus proyectos.

Esto creará un proyecto vacío, con un directorio .idea que simplemente recordará la organización del módulo que estamos por hacer en el siguiente paso

Seleccionar directorio raíz


3) Luego, en la siguiente ventana, importa los diferentes proyectos como módulos

Importar proyectos como módulos


4) En la siguiente ventana, para importar cada proyecto, simplemente haga doble clic en build.gradle o pom.xml

El proyecto se importará como un nuevo módulo. Seleccionar archivo de compilación


5) Listo, ahora tiene todos sus proyectos como módulos, abiertos en el mismo proyecto IntelliJ

Resultado


16
Esta es la respuesta correcta exacta a esta pregunta. Primero, cree y vacíe el proyecto y luego agregue los proyectos existentes. Gracias.
hrzafer

44
Tienes la solución. Pero su 'Requisito de tener todos los proyectos relacionados en el mismo directorio raíz'. no es requerido. Intenté proyectos maven y funciona bien con Intelllij versión 2017.3. Sin embargo, no lo he intentado con los módulos estándar intellij.
Gauthier Peel

2
La solución exacta!
Sábado

2
La mejor respuesta. Gracias :)
AnarchoEnte

2
Trabajó para mí con Intellij Idea 2018.3 y Gradle.
incide el

53

En IntelliJ 14.1.2, lo hice como sigue:

Seleccione File-> Project Structure-> Modules.

Seleccione +y Import Moduleseleccione el directorio de su proyecto (o directorio donde exista pom) y haga clic en Aceptar.

Siga el siguiente flujo de pantallas y después de hacer clic Finish, debería ver el proyecto junto con el existente.

ingrese la descripción de la imagen aquí


No se puede agregar el módulo de esta manera. Cannot import anything from C:/Projects/
siempre alian

@everalian, ¿tiene el pom.xml en C: / Projects o en otro lugar?
Neo

No, no tengo el archivo pom.xml. Porque uso Gradlebuild.
siempre alian

2
Esta debería ser la solución aceptada. No todos los proyectos usan maven.
Babken Vardanyan

34

Ninguna de las soluciones funcionó para mí, ya que no estoy trabajando en proyectos Maven. Hay una solución más simple. Ir:

Archivo-> Estructura del proyecto-> Módulos.

ingrese la descripción de la imagen aquí

En lugar de agregar un módulo, simplemente haga clic en la tercera opción (copiar). Explore su directorio local y seleccione el proyecto que desea agregar. El nombre del módulo se resolverá automáticamente. Eso es.

Actualización: cuando desee volver a abrir un proyecto con múltiples subproyectos, para evitar repetir los pasos como se describió anteriormente, simplemente vaya a Archivo-> Abrir reciente -> 'Su gran proyecto'.


1
Sí ... oh Sí .... Esta es la solución que estoy buscando. Importar como módulo o proyecto maven no genera .ideani xxx.imlarchivos. Esto puede causar problemas con los mosaicos de apache . Estoy usando con la versión 2018.1.5. Muchas muchas gracias.
Cataclismo

¡Esto es increíble! El único inconveniente es usar el IDE solo como editor y aún tener que navegar a la carpeta correcta para compilar y ejecutar. ¿Alguien tiene una manera fácil de usar esta solución para múltiples carpetas (módulos copiados) y aún compilar y ejecutar en el editor?
Greg Hilston

11

Para ampliar la respuesta @Neo: después de elegir su directorio. seleccione import module from external modely elija su modelo (experto en este caso).

elegir modelo

Luego marque la keep project filesopción del siguiente cuadro de diálogo. Mantendrá todos los archivos en el directorio original.

opciones

Su estructura de proyecto final sería algo como esto.

estructura

Ahora puede agregar su módulo como dependencia a otros módulos pom.xmly si cambia el código fuente de sus dependencias, Intellij se encarga de actualizar su proyecto (no es necesario ejecutar la mvncompilación manualmente para las dependencias)


8
  • nuevo proyecto vacio
  • Archivo -> Nuevo -> Módulo de fuentes existentes

6

Puede usar el complemento Armory que hace que el cambio entre proyectos sea cómodo. El acceso directo predeterminado para la lista de proyectos es Alt + A .

Captura de pantalla de la ventana Lista de proyectos

Por defecto, los proyectos abiertos actualmente se muestran en la parte superior de esta lista (con estilo en negrita ).


6

Abrir preferencia -> apariencia y comportamiento -> Configuración del sistema -> seleccionar (abrir proyecto en una nueva ventana) y luego aplicar.ingrese la descripción de la imagen aquí

Entonces podría abrir y editar múltiples proyectos.


55
Esto es exactamente lo que el OP está tratando de evitar. Los quiere en la misma ventana, los tres proyectos a la vez.
Simon Forsberg

6

Para quien usa Gradle también puede aprovechar lo mismo:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Vaya a: 1. Ver -> Herramienta Windows -> Gradle 2. Haga clic en el +botón y agregue su build.gradlearchivo


¿Estás utilizando la Edición comunitaria o la Edición definitiva? Soy nuevo en Intellij y solo obtuve CE (2019.3.3). Esto no tiene Gradle en ese menú.
Mike roedor

4

Presione "F4" en las ventanas que abrirán "Estructura del proyecto" y luego haga clic en el icono "+" o "Alt + Insertar" para seleccionar un nuevo proyecto para importar; luego haga clic en el botón Aceptar ...


Gracias por la llave. ¡Fue útil si olvidó agregar algo con la respuesta de @ThisIsFlorianK!
Sábado

4

Use el botón para agregar proyectos maven y vaya a la carpeta del proyecto. Luego, seleccione el pom.xmlarchivo y agréguelos en el IntelliJ.

ingrese la descripción de la imagen aquí


1

Para las personas que no usan Maven para construir y desean agregar un nuevo proyecto (estoy usando intellij 14.1.3):

  1. Haga clic derecho en la carpeta de nivel superior en la vista del proyecto, seleccione nuevo -> Módulo
  2. Asigne al módulo el mismo nombre que el proyecto que se va a agregar.
  3. En el menú superior, seleccione Archivo-> Nuevo-> Proyecto. Ingrese el mismo nombre que el nuevo módulo, las mismas ubicaciones de carpeta también.
  4. Abra el proyecto y espere a que intellij cree la estructura del proyecto.
  5. Cierre este nuevo proyecto y abra el proyecto original al que se agregó el módulo en el paso 2

Dependiendo de su constructor, se necesitarán pasos adicionales para agregarlo al proceso de compilación.

Para SBT, y en el proyecto de nivel superior, modifiqué el archivo Build.scala para agregar el nuevo proyecto, y agregué el proyecto en la ventana de proyectos SBT. Más información sobre compilaciones multiproyecto SBT: http://www.scala-sbt.org/0.12.2/docs/Getting-Started/Multi-Project.html


IntelliJ agregó soporte para agregar módulos sbt a un proyecto y funcionó realmente bien, pero parece estar roto desde las versiones de 2017. Todavía puede agregar múltiples módulos sbt, pero cuando actualiza, termina perdiendo todos menos uno.
Nader Ghanbari el

1

Para Intellij IDEA 2019.2, F4 + haga clic en el módulo, haga clic en + para agregar cualquier proyecto desde su HDD, encima de este menú puede editar el IDE con usted para crear el proyecto y más opciones, muy fácil


0

puede usar la opción de módulo de importación que lo abrirá como eclipse en el mismo navegador.


dice que no se puede abrir .ipr en el proyecto
siempre alian el

0

Soy nuevo en Maven y no entendí cómo podría trabajar con el proyecto Maven local agregado a través de la respuesta de Viktor Nordling y todavía tengo una dependencia adecuada en el archivo pom.xml. La respuesta es simple: intellij primero mira su módulo agregado localmente y si no encuentra uno, va a obtener el proyecto de forma remota. Puede verificar esto mirando "bibliotecas externas" debajo del navegador de su proyecto cuando agrega o elimina el módulo maven.

Espero que esto ayude a cualquiera.



-1

No es necesario mover proyectos completos a un módulo. El caso de uso para el módulo es un poco más fino que como contenedor de proyecto.

Para abrir varios proyectos en la misma ventana:

Archivo -> Abrir proyecto

Seleccione abrir en esta ventana.

Marque la casilla que dice agregar al proyecto actual.


1
no funciona. reemplaza el proyecto abierto actual a la misma ventana.
siempre alian

3
@everalian desafortunadamente esta característica fue eliminada.
BAR
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.