2011-08-31 8 views
2

다중 프로젝트 maven 프로젝트 (maven 2.2.1)가 있습니다. 모듈 중 하나가 메이븐 플러그인입니다.Maven 2 - 'mvn test'가 내부 프로젝트 플러그인 종속성을 찾지 못했습니다.

이 플러그인은 다른 모듈의 컴파일 단계에 바인딩되며 모듈 건물의 올바른 원자로 순서를 트리거하는 직접 종속성으로 추가됩니다.

루트 모듈에 'mvn clean install'을 실행하고 새로운 로컬 저장소를 사용하면 모든 것이 잘됩니다 (빌드, 테스트, 설치). (정확히 말하면 내 프로젝트의 아티팩트는 어디에도 배포되지 않으며 내 컴퓨터의 로컬 저장소에만 로컬로 설치됩니다.)

그러나 로컬 저장소를 삭제하고 'mvn test'를 수행하면 플러그인 모듈이 누락 된 것으로보고됩니까? 반면, 빌드 순서가 정확하다면, 플러그인 모듈은 모듈을 사용하기 전에 성공적으로 빌드됩니다. ???

'maven-plugin'패키지가있는 maven 모듈에 대한 특별한 치료 방법이 있습니까? 왜 다른 프로젝트 모듈 간 의존성이 올바르게 해석되고이 특정 프로젝트 모듈이 아닌지 이해할 수 없습니다!

+0

원자로 건설 주문을 변경해야하는 이유가 무엇인지 이해할 수 없습니까? 순서가 맞지 않습니까? – khmarbaise

+0

글쎄, 내 클라이언트 모듈에 플러그인의 바인딩을 단순히 넣으면 , 플러그인 모듈은 클라이언트 모듈 뒤에 빌드됩니다. –

+0

그게 내가 기대했던 것인데, 그 이유는 의존성이 다른 것이기 때문입니다. 이것은 를 통해주고, 영역을 통해서는 제공하지 않습니다. 가장 간단한 해결책은 maven-module의 을 필요한 모듈에 넣는 것입니다. 그것은 반응기 순서가 적절하게 변경 될 것이라는 것을 처리해야한다. – khmarbaise

답변

0

종속성으로 플러그인을 사용하기 전에 (또는 더 나은 라이프 사이클의 일부가되기 전에) 먼저 Maven Plugin을 로컬 저장소에 설치해야합니다.

+0

답해 주셔서 감사합니다; 그러나 이것을 명확하게 명시한 Maven 문서를 우리에게 가르쳐 주시겠습니까? –

+0

직접 링크를 제공 할 수는 없지만 설명해 드릴 수는 있습니다. 플러그인 문제는 종속 영역 대신 빌드 영역을 사용하여 표현되는 다른 jar (라이브러리)와 같은 종속성이 아닌 라이프 사이클에서 사용된다는 것입니다. – khmarbaise

+0

그건 의미가 있습니다. 나는이 트랙을 따라갈 것이다! –

관련 문제