tutorial proyecto pom plugin generar español desde consola con compilar comandos maven dependencies maven-profiles

proyecto - usando el plugin de compilación en el perfil de maven para construir módulos



maven tutorial español (1)

Tengo el proyecto principal "padre", que tiene tres módulos como:

<groupId>com.dummy.bla.bla</groupId> <artifactId>parent</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <modules> <module>A</module> <module>B</module> <module>C</module> </modules>

y tres módulos dependen uno del otro como una cadena:

A<--B<--C

Cuando ejecuto la compilación en Parent, primero generaré A-1.0-SNAPSHOT.jar, luego B-1.0-SNAPSHOT.jar, finalmente C-1.0-SNAPSHOT.jar.

Entonces el problema es que tengo otro perfil de experto para generar compilaciones nocturnas todos los días. En mi pom.xml padre tengo:

<build> <profile> <id>nightlybuild</id> <finalName>${artifcateId}-${buildNumber}</finalName> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>buildnumber-maven-plugin</artifactId> <executions> <execution> <phase>generate-resources</phase> <goals> <goal>create</goal> </goals> </execution> </executions> <configuration> <doCheck>false</doCheck> <doUpdate>false</doUpdate> <format>{0,date,yyyy-MM-dd_HH-mm}_{1}</format> <items> <item>timestamp</item> <item>${user.name}</item> </items> </configuration> </plugin> </build>

Entonces tengo un problema para construir todos los módulos usando el perfil "nighlybuild", porque primero genera A - $ {buildNumber} .jar, y luego cuando construye B, no busca A-1.0-SNAPSHOT.jar (porque bajo B / pom.xml Tengo A como dependencia con la versión 1.0-SNAPSHOT). ¿Hay alguna forma de que el pom.xml en B pueda tener algo así como:

if(normal build) { dependency A version is: 1.0-SNAPSHOT } if(nightly build) { dependency A version is: ${buildNumber} }


Esta no es una buena práctica. Si está cambiando la versión, entonces realmente debe liberar sus artefactos, es decir, usar maven-release-plugin (aún puede hacer eso durante su compilación nocturna).

Pero para responder a su pregunta, nada realmente le impide mover su declaración de dependencia en el proyecto B a un perfil, aunque no creo que pueda usar las propiedades establecidas por los complementos dentro de la declaración de versión de dependencia.