OK, pensado entendí cómo utilizar Maven ...¿Cómo puedo hacer que un módulo Maven dependa de otro?
que tienen un proyecto principal M
que tiene sub-proyectos A
, B
y C
. C
contiene algunas funcionalidades comunes (principalmente interfaces) que se necesitan en A
y B
. Puedo correr mvn compile jar:jar
desde el directorio raíz del proyecto (el directorio M
) y obtener archivos JAR A.jar
, B.jar
y C.jar
. (Las versiones para todos estos artefactos son actualmente 2.0-SNAPSHOT
.)
El archivo maestro pom.xml
en los M
listas de directorios C
bajo su etiqueta <dependencyManagement>
, de manera que A
y B
puede hacer referencia a C
con sólo incluye una referencia, así:
<dependency>
<groupId>my.project</groupId>
<artifactId>C</artifactId>
</dependency>
Hasta ahora, muy bien. Puedo ejecutar mvn compile
desde la línea de comandos y todo funciona bien. Pero cuando abro el proyecto en NetBeans, se queja del problema: "Algunos artefactos de dependencia no están en el repositorio local", y dice que el artefacto que falta es C
. Del mismo modo, desde la línea de comandos, si cambio a los directorios A
o B
y trato de ejecutar mvn compile
aparece "Error de compilación: no se pudo resolver el artefacto".
espero que podía ir manualmente a donde mi C.jar
fue construido y ejecutar mvn install:install-file
, pero preferiría encontrar una solución que me permite sólo trabajo directamente en NetBeans (y/o en Eclipse usando m2eclipse).
¿Qué estoy haciendo mal?
Gracias. En cierto modo, sabía que usar 'mvn package' en lugar de' mvn compile', pero gracias por el recordatorio. Sin embargo, el enlace "Mejores prácticas de Maven" en wiki.netbeans.org fue especialmente útil, así que estoy marcando esta respuesta como aceptada. –
@Daniel De nada. Pero la nota al margen era más sobre 'mvn package' vs' mvn jar: jar' :) Me alegra que haya encontrado útil el enlace. –
¿Es posible ejecutar 'install' del módulo como parte del' compile' del padre? –