Hola, soy muy nuevo en maven. Me gustaría cambiar el orden de la ejecución del complemento maven. En mi pom.xml tengo plug-in maven-assembly y plug-in maven ant. Utilicé el complemento maven assembly para crear el archivo zip y el plug-in maven ant para copiar el archivo zip del target a algún otro directorio. Cuando ejecuto pom.xml, el plug-in de maven ant se activó y, al buscar el archivo zip, finalmente recibí el error que decía que no se encontraba el archivo zip. Por favor, sugiera la forma de ejecutar el Ensamblaje de Maven Plug primero después de que el plug-in Maven Ant necesite ejecutarse para que copie el archivo zip en el directorio correspondiente.Cambiar el orden de la ejecución del complemento maven
Respuesta
Dado que dices que eres nuevo en Maven ... las compilaciones de Maven son ejecuciones de una serie ordenada de fases. Estas fases están determinadas por el lifecycle que es apropiado para su proyecto based on its packaging.
Por lo tanto, que de control cuando El objetivo de un plugin es ejecutado por binding it to a particular phase.
Espero que ayude.
EDIT: Además, dado que Maven 3.0.3, para los dos plugins unidos a la misma fase , el orden de ejecución es el mismo que el orden en que se defina ellos. Por ejemplo:
<plugin>
<artifactId>maven-plugin-1</artifactId>
<version>1.0</version>
<executions>
<execution>
<phase>process-resources</phase>
...
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-plugin-2</artifactId>
<version>1.0</version>
<executions>
<execution>
<phase>process-resources</phase>
...
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-plugin-3</artifactId>
<version>1.0</version>
<executions>
<execution>
<phase>generate-resources</phase>
...
</execution>
</executions>
</plugin>
En el ejemplo anterior, el orden de ejecución sería:
- maven-plugin-3 (generar-recursos)
- maven-plugin-1 (proceso de recursos)
- maven-plugin-2 (proceso de recursos)
Gracias por su respuesta. – user1062115
plugins en la misma fase se ejecutan en el orden declarado.
En el caso de la jerarquía del pom, usted tiene que volver a declarar los complementos del pom padre (sólo su groupId y su artifactId) en el POM niño para especificar el orden de ejecución: pom.xml
Padres
<plugins>
<plugin>
<groupId>groupid.maven.1</groupId>
<artifactId>maven-plugin-1</artifactId>
<version>1.0</version>
<executions>
<execution>
<phase>package</phase>
</execution>
</executions>
</plugin>
</plugins>
pom.xml niño
<plugins>
<plugin>
<groupId>groupid.maven.2</groupId>
<artifactId>maven-plugin-2</artifactId>
<version>1.0</version>
<executions>
<execution>
<phase>package</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>groupid.maven.1</groupId>
<artifactId>maven-plugin-1</artifactId>
</plugin>
</plugins>
A continuación, la ejecución es:
- maven.plugin.2
- maven.plugin.1
En Maven 3.0.3 y más adelante, hay dos reglas
- Plugin las ejecuciones se ordenan según sus fases. Consulte https://maven.apache.org/ref/current/maven-core/lifecycles.html para el orden de las fases.
Por ejemplo, aquí mavin-plugin-1 se ejecuta antes de maven-plugin-2 porque la fase de proceso de recursos se define como que tiene lugar antes de la fase de compilación.
<plugin>
<artifactId>maven-plugin-2</artifactId>
<version>1.0</version>
<executions>
<execution>
<phase>compile</phase>
...
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-plugin-1</artifactId>
<version>1.0</version>
<executions>
<execution>
<phase>process-resources</phase>
...
</execution>
</executions>
</plugin>
- Si múltiples ejecuciones tienen la misma fase, a continuación, el primero en ser ejecutado habrá la incorporada en uno (por ejemplo maven-compilador-plugin) cuyo id es predeterminado- algo, luego las otras ejecuciones tendrán lugar en el orden que aparecen en su archivo pom.
Por ejemplo, si usted tiene esto en alguna parte en su pom
<plugin>
<artifactId>maven-plugin-1</artifactId>
<version>1.2.3</version>
<executions>
<execution>
<id>my-compile</id>
<phase>compile</phase>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-plugin-2</artifactId>
<version>4.5.6</version>
<executions>
<execution>
<id>my-compile-2</id>
<phase>compile</phase>
</execution>
</executions>
</plugin>
y esto en cualquier parte del pom efectiva
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<executions>
<execution>
<id>**default-compile**</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
...
</executions>
</plugin>
continuación maven-compilador-plugin se ejecutará experto-compiler- complemento seguido de maven-plugin-1 y maven-plugin-2.
Si desea experto compilador-plugin: compilar objetivo de ejecutar después de maven-plugin-1, entonces usted puede hacer esto
<plugin>
<artifactId>maven-plugin-1</artifactId>
<version>1.2.3</version>
<executions>
<execution>
<id>my-compile</id>
<phase>compile</phase>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<executions>
<execution>
<id>something-other-than-**default-compile**</id>
<phase>compile</phase>
</execution>
<execution>
<id>**default-compile**</id>
<phase>none</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
- 1. ¿Ejecuta una sola ejecución del complemento Maven?
- 2. Maven JAXB2 Complemento XJC: ejecución del complemento M2E no cubierto
- 3. Maven - delegar la ejecución del complemento al submódulo
- 4. Proceso extraído de la versión de Maven: el complemento de ejecución ignora la configuración del usuario.xml?
- 5. Complemento Maven JAXB ejecutando solo una ejecución
- 6. Ejecución de pruebas de integración con el complemento Cobertura Maven
- 7. Cómo bloquear la versión del complemento maven
- 8. Reemplazando la definición del objetivo del complemento Maven para un ID de ejecución dado
- 9. Desarrollo del complemento Maven 3.0
- 10. uso del complemento maven enforcer
- 11. La ejecución del complemento no está cubierta por el error de configuración del ciclo de vida
- 12. ¿Cómo ejecutar la ejecución del complemento maven directamente desde la línea de comandos?
- 13. Maven: determina el orden de diferentes objetivos de complemento en la misma fase
- 14. Resolver el problema del complemento maven: 'Imposible cargar mojo'
- 15. La ejecución del complemento no está cubierta por la configuración del ciclo de vida
- 16. GWT 2.1 y el complemento Codehaus Maven
- 17. M2e: la ejecución del complemento no está cubierta por el ciclo de vida
- 18. Error del complemento: la ejecución no está cubierta por la configuración del ciclo de vida
- 19. IIS7 HttpModule y la orden de ejecución del filtro ISAPI
- 20. Orden de ejecución del filtro de acción
- 21. GroovyDoc como complemento de Maven
- 22. Determinación de la fase de ejecución de Maven dentro de un complemento
- 23. orden de ejecución del documento jQuery listo
- 24. Maven: cómo especificar qué ejecución del complemento de ensamblaje se ejecuta
- 25. Orden de ejecución en la lista de inicialización del constructor
- 26. Cambiar el orden de carga de la biblioteca en tiempo de ejecución (como LD_PRELOAD pero durante la ejecución)
- 27. Establecer propiedad maven desde el complemento
- 28. Orden de dependencia de Maven
- 29. Complemento Maven Buildnumber - Git
- 30. Cambiar el icono de instalación del complemento de Firefox
Vale la pena señalar que si usted tiene un paso que lee una propiedad de un archivo no se puede usar esa propiedad en etapas posteriores en el pom ... ver [esta publicación] (http://stackoverflow.com/questions/8541332/maven-read-version-number-from-property-file/27782825# 27782825) –