2011-02-24 13 views
44

¿Alguien me puede explicar el flujo de trabajo de IntelliJ IDEA de compilación, implementación y empaquetado con proyecto maven agrupado?IntelliJ IDEA: Maven, compilación e implementación de proyectos

He encontrado algunos malentendidos cuando estoy iniciando el servidor de tomcat a través del modo de depuración de IDEA. Por ejemplo, tengo un artefacto - archivo de guerra. Como entiendo cuando estoy ejecutando el modo de depuración, IDEA recompila y actualiza el código cambiado en war-archive.

Pero, ¿qué ocurre con el artefacto de maven empaquetado? ¿IntelliJ lo actualiza? ¿O tengo que configurar la opción 'Bulved maven before startup' para asegurarme de que el código modificado se cargue en el entorno?

Respuesta

61

Intelli J no utiliza maven para construir el proyecto; utiliza su propio proceso de compilación. Utiliza el archivo pom como una descripción del proyecto.

Esto significa un par de cosas, si desea construir un artefacto como un archivo de guerra cuando se ejecuta en tomcat, entonces todo lo que tiene que hacer es decirle a IntelliJ que construya la guerra en el diálogo Ejecutar/Configuraciones de depuración. IntelliJ creará automáticamente cualquier artefacto que especifique en la pestaña de implementación de su configuración de ejecución/depuración. Entonces, si especificas la guerra explotada, construirá la guerra explotada, si especificas la guerra regular construirá la guerra regular.

Ocasionalmente, las personas necesitan ejecutar complementos personalizados o crear objetivos, en cuyo caso puede configurar IntelliJ para que ejecute los objetivos personalizados de maven.

También puede decirle a intellIJ que ejecute el objetivo del paquete maven en lugar de construir el artefacto. IntelliJ desplegará lo que está debajo del directorio de destino a tomcat.

Lo importante es que IntellIJ usa dos sistemas de compilación separados. Debe decirle a cada sistema de compilación qué hacer. Y necesita decirle a IntelliJ qué sistema de compilación usar para qué. IntelliJ usará por defecto su propio sistema de compilación una vez que se haya importado un proyecto, a menos que le indique que use maven para algo.

Aunque IntelliJ construirá el artefacto que especifique en el archivo pom, no hará cosas como desplegar su repositorio de artefactos (local o de otro modo) a menos que haga clic en el objetivo de despliegue en la ventana de herramientas de Maven.

Además, si cambia su archivo pom y no tiene autorreprocesado de nuevo, esos cambios no se reflejarán en su proyecto hasta que haga clic en la opción de forzar la importación desde la ventana herramientas de maven.

+0

Telling IntelliJ para ejecutar el objetivo 'paquete' Sería muy bueno para mí ya que he hecho filtrado de recursos en la fase de envasado ... haría que el trabajo más lento que usar artefactos de IntelliJ? Gracias. –

+0

@jon Creo que eso podría ser marginalmente más lento principalmente porque maven intentará sacar todos los poms. Si ejecuta en modo fuera de línea, probablemente sea el mismo. –

+0

¡Buena información, gracias! –

-4

Creo que lo estás buscando.

Maven IDEA Plugin

el plugin IDEA se utiliza para generar archivos (DPI, IML, y IWS) para un proyecto para que pueda trabajar en él utilizando el IDE, IntelliJ IDEA.

Las esperanzas que ayuda

+2

IntellIJ ahora carga automáticamente un pom.xml y genera todos los archivos que necesita (ipr, iml e iws). Así que ya no tiene que usar el plug-in de Maven IDEA. –

Cuestiones relacionadas