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