2013-05-06 2 views
0

내 프로젝트에는 자체 리포지토리에 각각 10 개 정도의 재사용 가능한 구성 요소가 있지만 버전은 독립적이지만 빌드를 위해 서로 의존합니다.SNAPSHOT 종속성을 처리하는 Maven 및 Nexus

지금 당장 각 구성 요소에는 야간 빌드를위한 자체 넥서스 SNAPSHOT 리포지토리와 사용자 지정 넥서스 그룹이 있습니다. 따라서 구성 요소의 야간 빌드에는 타사 및 필요한 다른 구성 요소 만 포함될 수 있습니다. 특히 그룹에는 구성 요소의 자체 스냅 샷 저장소가 없습니다. 항아리가 제거되었을 때이를 감지 할 수있는 방법은 있지만이 방법에 대한 의존성을 제거하는 것을 잊어 버렸습니다. 오래된 SNAPSHOT 병을 발견했기 때문에 조용히 성공하기보다는 빌드가 중단됩니다.

그러나 이것은 관리 관점에서 볼 때 커다란 고통이며 공개 넥서스 저장소 (및 소나타 형식 책)에서 보았던 것에서는 구성 요소가 아닌 팀 또는 조직을위한 단일 저장소를 갖는 것입니다.

더 나은 방법이 있나요? 특정 이슈/그룹 ID 조합을 다운로드하지 않도록 구성 요소 pom에 넥서스 블랙리스트를 설치하는 방법이 있습니까?

+0

이 모든 구성 요소가 동일한 프로젝트에 속합니까? – khmarbaise

+0

그들은 모두 더 큰 프로젝트에 사용되지만 재사용 가능한 라이브러리로 설계되었습니다. 1..n 개의 구성 요소를 사용하는 여러 개의 "프로젝트"(최상위 프로젝트)가 있습니다. – Mark

답변

0

검은 색 바탕에 검은 색 목록이 없습니다. 귀하의 프로젝트 설정이 잘못되었다고 가정합니다.

모든 모듈 (재사용 가능한 구성 요소)이있는 프로젝트 프로젝트에 대한 다중 모듈 프로젝트를 만드는 것이 좋습니다. 종속성을 유지하지 않고 다른 버전에서 특히 당신 원인 프로젝트의 일관성 상태를 갖는 당신이 함께 구축에만 함께 모든 구성 요소의 단일 버전 및 간단한 솔루션을 갖는 이점을 줄 것이다

big-project (pom.xml) 
     +--- module1 (pom.xml) 
     +--- module2 (pom.xml) 
     +--- module3 (pom.xml) 
     +--- module4 (pom.xml) 
     .. 

어떤 구성 요소 (모듈)가 다른 구성 요소의 버전과 작동하는지 볼 수 있습니다.

설정에서 어떤 버전의 구성 요소가 특정 버전의 다른 구성 요소와 작동하는지 알기가 정말 어렵습니다. 로부터 별도로

그것은 간단이 같은 더 간단한 빌드의 일부로 통합 테스트를 만들 수 있습니다 위 :

big-project (pom.xml) 
     .. 
     +--- it-mod (pom.xml) 
     .. 

또한 당신은뿐만 아니라 다른 프로젝트에서 별도의 모듈 (부품)를 사용할 수 있습니다.

, 의미가 모든 구성 요소가의 groupId/artifactId를/버전, 그렇지 않으면 당신은 당신이 경험을 갖는 저장소에 대한 유지 보수 지옥이 그래서 당신은 하나의 스냅 저장소를 사용할 수있는 좌표가 있어야 발생하지 않습니다 넥서스에서 서로 다른 스냅 저장소를 사용.

+0

불행히도 이것은 불가능합니다. 우리의 경우, moduleX는 자체 포함 된 응용 프로그램입니다 ... 큰 프로젝트 외부에 자체적으로 존재합니다. 우리는 다른 모듈과 독립적으로 개발할 수 있도록 동일한 메이븐 프로젝트에 삽입하고 싶지 않습니다. – Mark

관련 문제