Pregunta

He creado un complemento Maven2 personalizado con Ant. Me gustaría llamar a otro complemento Maven, en particular el complemento Cargo Maven2 inmediatamente después de que el complemento Ant personalizado se complete con éxito. Sin embargo, no quiero adjuntar el complemento Cargo a otro objetivo o fase. ¿Hay alguna manera de que se ejecuten consecutivamente sin tener que escribir un script por lotes? ¿Hay alguna posibilidad de que el complemento Custom Ant llame al complemento Cargo?

¿Fue útil?

Solución

Vea esta discusión: Re: ¿Llamar al complemento en otro complemento? Según los desarrolladores de Maven, esta no es la forma en que se supone que funcionan los complementos.

Sin embargo, hay un comentario interesante:

  

Plugins / Mojos deben ser envoltorios delgados alrededor de una biblioteca. Desea utilizar la biblioteca directamente.

Cargo no es solo un complemento de Maven, también tiene una API Java y una Ant task . Entonces probablemente podrías:

  • llame a la tarea Cargo Ant desde su mojo Ant (creo que solo necesitará los Cargo JAR en el classpath de su complemento);

  • reescribe tu Mojo Ant en Java e invoca la API de Cargo (querrás ver las fuentes del complemento Cargo).

Otros consejos

El script Ant que ejecuta el complemento maven-ant no conoce realmente a Maven como tal; Este complemento está diseñado para la compatibilidad con versiones anteriores de tareas Ant personalizadas. No puedo pensar en una forma limpia de hacer lo que quieres, aunque puede haber algún tipo de pirateo que te permita hacerlo.

También debería ser posible ejecutar una segunda instancia de Maven desde el interior de Ant, que ejecuta únicamente el objetivo de Cargo, pero en ese caso puede encontrar problemas con archivos bloqueados y similares. La forma de hacerlo sería simplemente usar una etiqueta en su script Ant y llamar al " mvn " ejecutable con los objetivos apropiados como argumentos.

La forma más limpia es simplemente vincular el objetivo de Cargo a una fase de la construcción y hacer que se ejecute después de que Ant termine. No veo ninguna desventaja en ese enfoque: realmente no ha declarado ninguna razón específica por la que desea evitarlo.

Quizás te interesen los dos siguientes expertos

El complemento GMaven te permite escribir complementos maven usando groovy. Esto le da acceso completo a la hormiga usando el Ant Builder , es un muy manera fácil de escribir scripts de hormigas en Groovy. Luego, en este mojo Groovy, puedes llamar a cualquier mojo maven usando el Mojo Executor.

Los he usado en varios complementos personalizados de Maven y no he encontrado una manera más fácil de escribir y combinar mojos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top