Я не верю, и я не думаю, что это хорошая идея.
Насколько я понимаю, вы стремитесь достичь общего с ним компонента, который будет использоваться для нескольких моджо. Это требует, чтобы текущий сеанс Maven передавался и использовался для последующей передачи значения.
Однако Maven работает так, что он запускает цели из плагинов в почти контейнерной среде. Каждому плагину разрешено действовать в пределах определенной Maven Phase , как определено <executions />
. Это позволяет Maven разделять сложности сборки, тестирования, проверки, развертывания и т. Д. И т. Д. Вызов mvn clean install
, если я не ошибаюсь, - это два отдельных выполнения, одно из которых запускает жизненный цикл сборки clean
затем следует install
.
Поэтому небезопасно предполагать, что MavenSession
и последующие MavenExecutionRequest
представляют тот же экземпляр, который использовался в предыдущем вызове. clean
- это отдельный вызов, логика которого не должна поддерживаться в новом сеансе.
Итак, что я по сути говорю, так это то, что хотя наличие общего компонента сплетения является хорошей практикой, особенно для поддержания согласованности во всех ваших моджо, это правильная практика (почти ioc ), чтобы обеспечить соответствующий сеанс каждый раз.
Я надеюсь, что это ответ, который вы ищете. Довольно долго, но чтобы понять, почему вам нужно предоставить сессию, подумайте Maven
.