Maven: ¿Qué es pluginManagement?
Este es un fragmento de mi archivo pom.
....
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
......
</configuration>
</execution>
</executions>
</plugin>
</plugins>
...
Lo uso con éxito con el comando
mvn install
Pero, cuando intento encerrarlo en la etiqueta "pluginManagement", el maven-dependency-plugin
deja de funcionar cuando lanzo el objetivo install
.
¿Por qué la etiqueta" pluginManagement " cambia el comportamiento de compilación? ¿O debo usar otro objetivo u opción?
4 answers
Todavía necesita agregar
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
</plugin>
</plugins>
En tu compilación, porque pluginManagement
es solo una forma de compartir la misma configuración de plugin en todos los módulos de tu proyecto.
De la documentación de Maven:
PluginManagement: es un elemento que se ve junto a plugins. La administración de complementos contiene elementos de complementos de la misma manera, excepto que en lugar de configurar la información de complementos para esta compilación de proyecto en particular, está destinado a configurar compilaciones de proyectos que hereda de éste. Sin embargo, esto solo configura complementos a los que realmente se hace referencia dentro del elemento plugins en los hijos. Los niños tienen todo el derecho de anular las definiciones de pluginManagement.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-11 15:08:00
La diferencia entre <pluginManagement/>
y <plugins/>
es que a <plugin/>
bajo:
<pluginManagement/>
define la configuración de los complementos que serán heredados por los módulos en su compilación. Esto es ideal para los casos en los que tiene un archivo pom para padres.<plugins/>
es una invocación real del plugin. Puede o no ser heredado de un<pluginManagement/>
.
No necesitas tener un <pluginManagement/>
en tu proyecto, si no es un POM padre. Sin embargo, si es un padre pom, entonces en el niño pom, necesitas tener una declaración como:
<plugins>
<plugin>
<groupId>com.foo</groupId>
<artifactId>bar-plugin</artifactId>
</plugin>
</plugins>
Observe cómo no está definiendo ninguna configuración. Puede heredarlo del padre, a menos que necesite ajustar aún más su invocación según las necesidades del proyecto hijo.
Para obtener información más específica, puede consultar:
El Maven pom.referencia xml: Plugins
El Maven pom.referencia xml: Gestión de complementos
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-06 11:05:24
Utiliza pluginManagement en un pom padre para configurarlo en caso de que cualquier pom hijo quiera usarlo, pero no todos los complementos hijos quieran usarlo. Un ejemplo puede ser que tu super pom defina algunas opciones para el plugin maven Javadoc. Es posible que no todos los pom secundarios quieran usar Javadoc, por lo que debe definir esos valores predeterminados en una sección de administración de complementos. El pom hijo que quiere usar el plugin Javadoc, solo define una sección de plugin y heredará la configuración de la definición de pluginManagement en el padre pom.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-05-07 13:49:49
PluginManagement: es un elemento que se ve junto a los plugins. La administración de complementos contiene elementos de complementos de la misma manera, excepto que en lugar de configurar la información de complementos para esta compilación de proyecto en particular, está destinada a configurar compilaciones de proyectos que hereden de esta. Sin embargo, esto solo configura complementos a los que realmente se hace referencia dentro del elemento plugins en los hijos. Los niños tienen todo el derecho de anular la administración del enchufe definición.
De http://maven.apache.org/pom.html#Plugin%5FManagement
Copiado de:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:55:02