2010-06-03 23 views
5

que tienen dos proyectos de Maven: proyecto-api-impl proyecto POMInter Dependencias del proyecto de Maven

del proyecto-impl especifica una dependencia de proyecto-api. La agregación de nivel superior pom enumera los módulos project-api y project-impl.

Si ejecuto la compilación en el nivel superior, las dependencias se resuelven correctamente. Si ejecuto la compilación en project-impl, entonces no puede encontrar la dependencia de project-api. ¿Cómo puedo configurar Maven para que cuando se compile Project-Impl, primero compile y recopile sus dependencias en otros proyectos?

Respuesta

6

que sólo puede hacerlo desde la raíz del proyecto

mvn -pl child -am 

esto va a construir su sub proyecto y también todas las dependencias en el mismo árbol. En general, cuando tiene un proyecto de múltiples módulos, siempre debe compilar desde el padre, nunca desde el hijo. Y si sólo quiere construir uno o dos proyectos niño, hacer esto:

mvn -pl child 

O

mvn -pl child2,child3 

(proyectos child2 y Niño3 están construidas, pero child1 y Niño4 no lo son)

+1

+1 Las opciones avanzadas del reactor son el camino a seguir –

+0

mvn -pl -am funciona. –

1

Necesita una dependencia de api en el POM del módulo impl.

Cuando se compila en el proyecto toplevel, el reactor determinará el orden correcto para construir cosas.

Para construir el proyecto-impl por separado primero debe 'mvn instalar' el módulo project-api o no encontrará las dependencias correctas.

Si trabaja en equipo, un servidor de compilación automatizado que envíe artefactos a un repositorio central puede ayudar a aliviar el dolor, porque esto puede volverse loco.

Todo esto funciona muy bien, sin embargo, funciona de la manera "maven", que no siempre es como nosotros los humanos haríamos las cosas.

Cuestiones relacionadas