2012-06-21 2 views
1

maven에서 재사용 가능한 종속성 정의 및 프로필을 만드는 가장 좋은 방법은 무엇입니까?Maven 구성 다시 사용

통합 테스트를위한 종속성과 프로파일을 별도의 pom으로 외부화하고 싶습니다. 하나의 상위 pom을 상속하지 않는 다른 maven 프로젝트에 포함될 수 있습니다. 나중에 콘솔과 Eclipse에서 서로 다른 응용 프로그램 서버에서 통합 테스트를 실행할 때 프로파일을 활성화 할 수 있습니다.

integrations-tests 
    pom.xml (contains Arquillian dependencies and profiles) 
     profile:jboss-remote 
     profile:tomcat-embedded 
     dependencies:Arquillian,Java EE,MavenShrinkWrap etc. 
project1 
    pom.xml 
     dependency:integration-tests (or other way to include) 
project2 
    module1 
     pom.xml 
      dependency:integration-tests (or other way to include) 

mvn test -P jboss-remote (profile from integrations-tests) 
mvn test -P tomcat-embedded (profile from integrations-tests) 

많은 개발자와 CI 서버에서 프로파일을 재사용 할 수 있으므로 로컬 settings.xml을 망치고 싶지 않습니다.

답변

0

이것을 달성하려면 <dependencyManagement><pluginManagement>maven pom 구성을보고 싶을 것입니다. dependency managementbuild profiles에있는 메이븐 노트를 볼 수 있습니다 (후자는 기한입니다).

요구 사항의 종류에 따라 externalizing 프로파일이있을 수 있습니다.

0

사실 참으로 흥미로운 질문입니다.

요약하면 원하는 것을 달성하는 좋은 방법이 없습니다. 당신이 찾고있는 것은 믹스 인 (mix-in)과 같은 것들이지만, Maven (현재)에서 설정을 공유하는 주요 방법은 주로 상속에 의한 것이다.

따라서 가장 좋은 방법은 부모 POM에 모든 공유 설정을 저장하고 프로필을 사용하여 켜거나 끄는 것입니다. 그러나 하나의 모듈에서 켜기를 원하지만 다른 모듈에서 꺼두려면 어려울 수 있습니다.

믹스 인은 종속성 범위 가져 오기로만 사용할 수 있습니다. 그러나 사용은 다소 제한적입니다 (dependencyManagement에만 영향을줍니다). 당신은 귀하의 요구 사항의 일부로 도움이 될 수 있는지 살펴볼 수 있습니다.