2009-07-04 5 views
5

스냅 샷 종속성에 대한 변경 사항을 확인하고 필요할 경우 빌드를 트리거하는 cruisecontrol 플러그인이 있습니다. Maven embedder를 사용하여 종속성을 다운로드 한 다음 로컬 저장소에서 스냅 샷 파일의 타임 스탬프를 확인합니다. 이 작업은 정상적으로 작동하지만 일부 타임 스탬프를 확인하기 위해 모든 부모 및 종속성을 다운로드해야합니다.연속 통합 서버에서 maven 스냅 샷 종속성 변경 확인

저는 배포 된 CI 시스템 (예 : Bamboo/Buildforge)을 작업 중이며 빌드가 필요한지 확인하기 위해 전체 종속성 계층 구조를 다운로드하지 않으려합니다. 원격 저장소의 maven-metadata.xml을 검사하여 스냅 샷 종속성의 빌드 날짜를 결정할 수 있습니다.

이 프로세스를 간소화 할 수있는 플러그인이나 도구가 있습니까?

+0

당신은 분산 된 CI 시스템을 구축하고 있다는 것을 의미합니까? –

+0

아니요. 저는 CI 시스템으로 Buildforge를 사용하고 있습니다. 각 빌드는 임의의 에이전트에서 발생할 수 있으며 모든 Maven 종속성 계층을 해결하지 않아도 스냅 샷이 변경되었는지 확인하고 싶습니다. 그렇게하기위한 정보는 저장소의 maven-metadata.xml 파일에 있습니다. 이 파일을 직접 처리하지 않기위한 도구를 찾고 있습니다. –

+0

'예 :' '예를 들어'라는 뜻이므로 Bamboo 나 Buildforge와 비슷한 도구로 작업하는 것보다는 원래의 질문이 들리는 것 같습니다. –

답변

1

에서 이러한 플러그인을 찾을 수 있습니다.

머큐리는 OSGi와 같은 AV 리포지토리를 포함하여 GAV 기반 리포지토리에 액세스 할 수있는 구현에 중립적 인 방법을 제공합니다. OSGi 액세스가 아직 구현되지 않았습니다. 액세스를 통해 저장소에서 아티팩트 및 메타 데이터를 읽고 리포지토리에 아티팩트를 작성하면 메타 데이터가 쓰기로 업데이트됩니다.

모든 호출은 요청의 콜렉션을 입력으로 받아 getResults를 숨기는 객체를 반환합니다. 일반적으로 map은 < queryElement, Collection> response입니다.진정 -

  • ArtifactCoordinates : 응답 객체는 편의 Methos는의 hasExceptions(), hasResults(), getExceptions(), getResults() 키 빌딩 블록의

    하나는 유물 데이터의 계층 구조를 가지고 3 개 성분 GAV

    • ArtifactBasicMetadata는 - 좌표 플러스 타입/분류 플러스 해시 계산 등 편의 방법 및
    • 이다
  • ArtifactMetadataDefaultArtifact아티펙트 인터페이스를 구현하고 추가
  • ArtifactBasicMetadata pomBlob (바이트 []) 및 파일로 캡처 종속성 개체의 목록을 추가 포인트 실제 이진
2

빌드 프로세스로 maven을 사용한다고 가정하면, 플러그인이 검사 및 조건부 빌드를 수행하기를 원합니다.

정확히 원하는대로 할 수있는 메이븐 플러그인을 모르겠습니다. 그러나 같은 효과를 내기 위해 몇 가지 플러그인을 함께 사용해야합니다.

exec 플러그인을 "wget"과 함께 사용하여 maven-metadata.xml을 가져옵니다. 그런 다음 xslt 플러그인을 사용하여 결과 XML을 업데이트가 발생했는지 여부를 나타내는 부울 값으로 변환합니다. XPath를 // metadata/versioning/lastUpdated 노드로 변경하고 현재 날짜 및 시간과 비교할 수 있습니다. 마지막으로, 변환 된 XML을 검사하여 빌드를 진행해야하는지 결정해야합니다.

Mercury 내가 찾고있는 높은 수준의 API를 제공하는 것 같습니다 http://mojo.codehaus.org/plugins.html

+0

나는 그것을 함께 모을 수 있다는 것을 안다. 해킹의 필요성을 피할 수있는 라이브러리, 유틸리티 또는 무언가를 찾고 있습니다. –