Nota: este hilo trata de escribir un Mojo personalizado, sin usar un complemento.Escribiendo un Plugin/Mojo de Maven: ¿cómo se hace que un objetivo fuerce la ejecución de otros objetivos?
Mantengo un testing plugin para Maven. Desafortunadamente, durante casi un año, dejé que este particular desconocido permanezca y me gustaría saber cómo manejarlo para que sus usuarios puedan tener una configuración más simple.
Digamos que tenemos dos goles en nuestro plugin:
prepare
(fase: generate-fuentes)do
(fase: compilar)
Quiero configurar el do
Mojo para requerir que prepare
se haya ejecutado en la fase anterior de la compilación. Sin embargo, nada en el descriptor documentation sugiere que puedo.
El usuario probablemente no le importe o entienda el objetivo de la meta prepare
, por lo que no quiero obligarlos a especificarlo en su POM. Por supuesto, podría ejecutar el Mojo directamente desde do
, pero luego el objetivo prepare
se habrá ejecutado en una fase posterior a la prevista.
(I mirado en custom lifecycles, pero eso hace que parezca que todos los que ya tiene el objetivo prepare
en su POM tendrá que ejecuta dos veces al ejecutar do
.)
Así es como especificar que el 'do' Mojo se uniría a la fase de compilación de forma predeterminada y se llamaría' compile' como un objetivo, pero desafortunadamente no veo cómo dice "oh y asegúrese de que 'prepare' se ejecutó primero ". En este punto, parece que la única respuesta es un ciclo de vida personalizado ... que tengo funcionando pero no estoy seguro de que me guste aún. –
Interesante. Tal vez podrías probar el canal de IRC#maven en irc.codehaus.org. Quizás algunos de los muchachos tendrán una mejor sugerencia. – carlspring
¿Por qué el voto a favor? Sí, esta es la forma antigua no basada en anotaciones para hacerlo, pero sigue siendo válida. – carlspring