/ / maven goal no se ejecuta correctamente si los complementos están definidos en pluginManagement - maven, maven-plugin

maven goal no se ejecuta correctamente si los complementos se definen en pluginManagement - maven, maven-plugin

Tengo maven-jaxb2-plugin. Genero objetos jaxb y los refiero a otras clases de proyecto. He puesto el plugin jaxb y el compilador en la etiqueta pluginManagement. Maven ejecuta la fase de compilación primero que la fase generada en la que, como si eliminara la etiqueta pluginManagement, funciona bien, primero genera la fase se ejecuta y se genera todo el objeto jaxb y luego se ejecuta la fase de compilación. Debido a la etiqueta pluginManagement, mi proyecto no se compila. ¿Se utiliza la etiqueta pluginManagement solo para definir todos los complementos en pom principal para que pom secundario pueda referirse a estos complementos? Mi proyecto no es un proyecto multi-módulo.

   <pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>utf-8</encoding>
</configuration>
</plugin>

<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<schemaDirectory>${basedir}/src/main/resources/schema</schemaDirectory>
<generatePackage>com.common.dto</generatePackage>
<schemaIncludes>
<include>*.xsd</include>
</schemaIncludes>
<removeOldOutput>false</removeOldOutput>
<strict>false</strict>
<verbose>true</verbose>
<forceRegenerate>true</forceRegenerate>
<extension>true</extension>
</configuration>
</plugin>
</plugins>
</pluginManagement>

Respuestas

6 para la respuesta № 1

Sí, <pluginManagement> se utiliza para crearConfiguraciones listas para usar, pero que no activan automáticamente sus complementos, aún debe incluirlos. Entonces, en efecto, tiene razón, <pluginManagement>, al igual que <dependencyManagement> son muy útiles en el pom principal para centralizar las configuraciones de complementos y la administración de dependencias.

Efectivamente, "declarar" sus complementos en el módulo correcto se beneficia de una sintaxis mucho más compacta:

<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>

<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
</plugin>
</plugins>