Remarque: ce sujet traite de l'écriture d'un Mojo personnalisé, sans utiliser de plugin. Je maintiens un testing plugin pour Maven Malheureusement, depuis presque un an maintenant, j'ai laissé cet inconnu persister et j'aimerais vraiment savoir comment le traiter afin que ses utilisateurs puissent avoir une configuration plus simple.Ecrire un plugin Maven/Mojo: comment faire un but force l'exécution d'autres objectifs?
Disons que nous avons deux objectifs dans notre plug-in:
prepare
(phase: generate-sources)do
(phase: compilation)
Je veux configurer le do
Mojo pour exiger que prepare
ait été exécuté dans la phase antérieure de la construction. Cependant, rien dans le descriptor documentation ne suggère que je peux.
L'utilisateur ne se soucie probablement pas du but de l'objectif prepare
, donc je ne veux pas les forcer à le spécifier dans leur POM. Bien sûr, je pourrais exécuter le Mojo directement à partir de do
, mais l'objectif prepare
aura été exécuté plus tard que prévu.
(j'ai regardé custom lifecycles, mais qui fait apparaître que tous ceux qui ont déjà l'objectif prepare
dans leur POMs l'aura exécuté deux fois lors de l'exécution do
.)
Ainsi, comment spécifier que le 'do' Mojo se lierait à la phase de compilation par défaut et s'appellerait' compile' comme but, mais malheureusement je ne vois pas comment il est écrit "oh et assurez-vous que 'prepare' a été couru en premier ". À ce stade, il semble que la seule réponse est un cycle de vie personnalisé ... que j'ai travaillé, mais je ne suis pas sûr que j'aime encore. –
Intéressant. Peut-être pourriez-vous essayer le canal IRC#maven dans irc.codehaus.org. Peut-être que certains des gars auront une meilleure suggestion. – carlspring
Pourquoi la downvote? Oui, il s'agit de la méthode la plus ancienne basée sur la non-annotation, mais elle est toujours valide. – carlspring