tutorial pom instalar central maven

instalar - Maven-Padre Pom-Herencia Infantil



maven tutorial (3)

Estoy tratando de hacer una configuración de pom padre maven en la que no tengo que declarar ninguna información de complemento en mi pom hijo, todo se toma del pom padre.

Básicamente lo tengo funcionando donde puse todos mis complementos con sus configuraciones en el pom principal. Luego, en los poms secundarios, tengo que declarar el complemento todavía, pero sin la versión y la información de configuración.

No quiero tener que declarar el complemento en el niño en absoluto. De esta manera puedo agregar nuevas funciones (como pmd, freebugs, etc.) a mi padre pom y todos mis proyectos ahora los tienen funcionando. ¿Cómo puedo lograr esto?

Padre pom

<pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-scm-plugin</artifactId> <version>1.0</version> <inherited>true</inherited> <configuration> <providerImplementations> <cvs>cvs_native</cvs> </providerImplementations> <systemProperties> <property> <name>maven.scm.perforce.clientspec.name</name> <value>${perforceClientSpec}</value> </property> </systemProperties> </configuration> </plugin>

Child Pom todavía necesita esto, pero no quiero tener que hacer esto si puedo evitarlo:

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


En lugar de usar pluginManagement , intente usar solo la etiqueta <plugins> . Debe ser auto heredado. Opcionalmente, puede anular la configuración en pom hijo. Comprueba que por mvn help:effective-pom


No puede evitar nombrar el complemento en el pom del niño, ya que, como debería saberlo, qué complemento está utilizando. La sección de administración de complementos está diseñada para definir las versiones de complementos y, además, se utiliza para definir una configuración predeterminada.


<pluginManagement> sección <pluginManagement> está diseñada para configurar las compilaciones de proyectos que se heredan de esta. Sin embargo, esto solo configura los complementos a los que en realidad se hace referencia dentro del elemento complementos en los hijos (por lo que tiene que especificarlos explícitamente, como indicó). Ver más here .

Si desea evitar esto, puede poner esta información en la sección <build> esta manera:

<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-scm-plugin</artifactId> <version>1.0</version> <configuration> <...> </configuration> <executions> <...> </executions> </plugin> </plugins> </build>