Je ne crois pas que ce soit le cas, et je ne pense pas que ce soit une bonne idée.
D'après ce que j'ai compris, votre objectif est d'avoir un composant commun qui sera utilisé pour plusieurs mojos. Cela nécessite que la session Maven actuelle soit transmise et utilisée pour renvoyer ensuite une valeur.
Cependant, la façon dont Maven fonctionne est qu'il exécute les objectifs des plugins dans un environnement presque semblable à un conteneur. Chaque plugin est autorisé à agir à l'intérieur d'un domaine particulier. Phase Maven tel que défini par le <executions />
. Cela permet à Maven de séparer les complexités de la construction, du test, de la vérification, du déploiement etc. etc. Appeler mvn clean install
sauf erreur de ma part, il s'agit de deux exécutions séparées, l'une pour exécuter le clean
le cycle de vie de la construction suivi par le install
.
Il n'est donc pas sûr de supposer que le MavenSession
et suivants MavenExecutionRequest
représentent la même instance utilisée lors d'un appel précédent. clean
est un appel distinct, dont la logique ne doit pas être maintenue dans une nouvelle session.
Donc, ce que je dis essentiellement, c'est que si avoir un composant plexus commun est une bonne pratique, en particulier pour maintenir la cohérence entre vos mojos, c'est une pratique correcte (presque ioc ), afin de fournir la session appropriée à chaque fois.
J'espère que c'est la réponse que vous cherchez. C'est plutôt long, mais pour comprendre pourquoi vous devez fournir la session, pensez à ce qui suit Maven
.