2011-09-09 6 views
3

this question.에 대한 답변에서 설명한 것과 같은 프로젝트 레이아웃을 사용합니다. 상위 POM이 내 프로젝트 POM과 별도로 관리, 빌드 및 배포되는 경우 상위 POM의 pluginManagement 섹션이 어떻게 유효합니까?Maven에서 상위 POM의 pluginManagement 섹션의 유효성을 검사하려면 어떻게해야합니까?

Maven은 내가 말할 수있는 한 빌드에서 실제로 사용되는 플러그인 만 검사합니다. pluginManagement에서 선언하는 플러그인의 대부분은 부모 -pom을 빌드 할 때 사용되지 않기 때문에 하위 프로젝트가 관리 할 것으로 예상되는 플러그인을 사용하려고 시도 할 때까지 유효하지 않은 항목이 있는지 알 수 없습니다. 부모 - 여동생에 의해.

버전 플러그인을 사용해 보았지만 존재하지 않는 플러그인 (예 : 오타)은 무시한 것 같습니다. 내 부모 -pom에있는 플러그인을 inherited=false으로 선언하려 시도했지만 선언 된 모든 플러그인을 단계에 연결해야합니다. 게다가 필자는 반드시 부모 플러그인에 대해 해당 플러그인을 실행하고 싶지 않습니다.

나는 많은 사람들이 부모 폼이나 어떤 종류의 슈퍼 폼을 사용한다는 것을 안다. 그래서 내가 바라 보는 뭔가가 있어야한다.

답변

2

상위 pom 모듈에 정의 된 일부 또는 모든 플러그인을 사용하여 상위 pom을 상속하는 테스트 maven 프로젝트 세트를 만들고 상위 pom을 실행하고 테스트 메이븐 프로젝트의 빌드 성공을 확인하십시오. maven-invoker-plugin이 모든 작업을 수행하는 데 도움을 줄 수 있습니다. 이 플러그인은 maven 핵심 플러그인 테스트에 많이 사용되므로 sources of maven core plugins에서 더 많은 사용 예제를 찾을 수 있습니다.

또 다른 조언은 필요할 때만 부모 pom pluginManagement에 플러그인을 추가하는 것입니다. 그러면 플러그인도 테스트 할 수있는 기회가 주어집니다. 그래서 단계는, 부모 pom에 아직 존재하지 않는 주어진 플러그인을 사용하는 프로젝트를 만들기 시작하고, 부모 pom에 플러그인을 추가하고, 부모 pom 스냅 샷을 릴리스하고, 새 프로젝트에서 해당 스냅 샷을 사용하고, 모든 승인 부모 pom을 해제하고 참조를 조정하는 단계입니다. 새로운 프로젝트에서 부모님과 대화하기. 나중에 다른 프로젝트 또는 동일한 프로젝트에 대해 부모 pom에 이미 지정된 추가 플러그인 또는 최신 버전이 필요한 경우 상위 pom을 조정하고 새 상위 pom 스냅 샷을 릴리스하고 주어진 프로젝트에서 작동하는지 확인하고 상위 pom을 해제하는 경우 새롭게 릴리스 된 상위 pom에 대한 상위 참조를 조정합니다.

+0

이 답변을 수락합니다. 나는 그 해결책이 맘에 들지 않지만, 나는 그것이 정확하고, 내가 말할 수있는 한, 내가 한 것을 성취 할 수있는 유일한 방법이라고 믿는다. –

관련 문제