2012-04-25 2 views
3

필자는 개발자가 메이븐 좌표가 주어지는 이슈에 대한 출처를 체크 아웃 할 수있는 도구를 작성하려고합니다. 도구는 모든 SNAPSHOT 종속성에 대한 소스를 재귀 적으로 체크 아웃 할 수 있어야합니다.Maven에서 해당 좌표를 가진 이슈 소스를 체크 아웃하려면 어떻게해야합니까?

첫 번째 질문은 다음과 같습니다.이 도구를 작성해야합니까? 이것이 매우 독특한 사용자 시나리오는 아니라고 생각하지만 아직이 목표를 달성하기에 적합한 것을 찾지 못했습니다. scm : checkout 및 scm : bootstrap을 살펴 보았습니다. 둘 다 연결 URL에 대한 지식이 필요합니다. 연결 URL에는 artifactID 만 있습니다. 다른 방법이 있습니까? 그렇지만 이렇게하려면 맞춤 도구를 작성 하시겠습니까?

  1. 구문 분석 .m2/Settings.XML이 결정하는 인공물의 치어 다운로드 사용 REPO :하지 않으면

    , 내 집 양조 도구의 라인에서 일을 할 것입니다.

  2. 다운로드 된 pom에서 scm-tag를 사용하여 임시 부트 스트랩 -pom을 만듭니다.
  3. 체크 아웃 소스에 scm : bootstrap 및 bootstrap-pom을 사용하십시오.
  4. [선택 사항] SNAPSHOT 종속성이있는 POM 소스를 검색하고 프로세스를 반복하십시오.

내 두 번째 질문은 다음과 같습니다.이 소리가 나에게 좋은 방법 인 것 같습니까? 어떤주의 사항이 떠오릅니 까?

답변

1

이렇게 체크 아웃하려는 프로젝트마다 scm 플러그인의 부트 스트랩 목표에 대한 플러그인 구성을 포함하는 프로필을 추가 ​​할 수 있습니다. 플러그인 구성은 scm URL과 동일한 POM에 있으므로 핸들 # 2는 & 3입니다. 별도의 bootstrap-pom이 필요하지 않습니다.

초기 POM을 받고 들어, 명령 줄에서 dependency:get을 사용할 수있는 체크 아웃 할

mvn -Pbootstrap-profile-id scm:bootstrap 

:

mvn dependency:get -Dartifact=some.group:my.artifact:version:pom -Ddestination=someDirectory 

다운로드 POM있는 디렉토리에서, 당신은 부트 스트랩을 수행 최상위 프로젝트

어떻게 재귀 적으로 만들지 모르겠다. 이행 종속성을 요구하고 POM을 복사 한 다음 각각에 부트 스트랩 프로세스를 실행하여 dependency:copy-dependencies을 사용할 수 있습니다. 그것이 어떻게 작동 할 지 확신하지 못합니다.

0

user944849의 솔루션은 여기에 나를 위해 작동하지 않지만,이 치어가 해제 플러그인에 의해 생성되지 않은 경우

mvn dependency:get -Dartifact=ar.com.hjg:pngj:2.1.0:pom -Ddest=pom.xml 
mvn scm:bootstrap -Dgoals=validate 
mv target/checkout ~/projects/pngj 
+0

를 작동하는 예입니다, SCM의 URL이 태그 대신에 머리를 가리킬 수 릴리스의. 당신이 원하는 것일 수도 그렇지 않을 수도 있습니다. –