Plexus 구성 요소에서 현재 MavenSession 또는 MavenExecutionRequest를 가져 오는 방법
내가 만들고 싶은 여러 Mojo에 대한 공통 논리를 수용하기 위해 Plexus 구성 요소를 만들었습니다. localRepositoryMojo (및 테스트 사례)와 같은 정보 와 프로젝트 를 전달할 수있었습니다 .
Mojo에서 매개 변수로 전달할 필요없이 구성 요소 내에서 MavenSession또는 MavenExecutionRequest구성 요소 를 가져 오는 방법이 있는지 궁금합니다 . 내 구성 요소가 Maven Mojo에서 실행된다는 것을 알고 있습니다.
이 경우 Maven 2를 사용하고 있습니다.
나는 그것이 있다고 믿지 않으며 그것이 좋은 생각이라고 생각하지도 않습니다.
내 이해에 따르면, 당신이 달성하고자하는 것은 여러 모조에 사용될 커먼즈와 같은 구성 요소를 갖는 것입니다. 이를 위해서는 현재 Maven 세션이 전달되고 나중에 값을 다시 전달하는 데 사용되어야합니다.
그러나 Maven이 작동하는 방식은 거의 컨테이너와 같은 환경에서 플러그인에서 목표를 실행한다는 것입니다. 각 플러그인은에 정의 된대로 특정 Maven 단계 내에서 작동 할 수 <executions />있습니다. 이 메이븐, 확인, 배포 등 등 부름을 구축 테스트의 복잡성을 분리 할 수 있습니다 mvn clean install, 내가 실수 있어요 않는 한, 두 개의 별도의 실행, 하나는 실행하는 것입니다 clean 빌드 라이프 사이클 에 의해 다음을 install.
따라서 MavenSession및 후속 MavenExecutionRequest이 이전 호출에서 사용 된 동일한 인스턴스를 나타낸다고 가정하는 것은 안전하지 않습니다 . clean논리가 새 세션에서 유지되지 않아야하는 별도의 호출입니다.
그래서, 제가 본질적으로 말하고있는 것은, 공통 신경총 구성 요소를 갖는 것이 좋은 관행 인 반면, 특히 모조 전반에 걸쳐 일관성을 유지하기 위해서는 매번 적절한 세션을 제공하는 것이 올바른 관행 (거의 ioc )입니다.
그것이 당신이 찾고있는 답 이길 바랍니다. 다소 길지만 세션을 제공해야하는 이유를 이해하려면 Maven.
'Program Club' 카테고리의 다른 글
| "꿈을 제어"하기 위해 수업을 사용하는 방법? (0) | 2020.12.13 |
|---|---|
| Akka 유한 상태 머신 인스턴스 (0) | 2020.12.13 |
| "장치 로그인"타임 라인 및 / 또는 offline_access + 1 회 로그인에 대한 대안 (0) | 2020.12.13 |
| PEM_read_bio_PrivateKey ()는 ECB 모드에서만 NULL을 반환합니다. (0) | 2020.12.13 |
| Data.Acid를 사용할 때 이벤트 구현 변경을 처리하는 방법 (0) | 2020.12.13 |