2012-12-02 6 views
0

나는 "더 많은 리포지토리를 추가할수록 빌드가 더 느려질 것"이라고 here을 읽었습니다. 그게 사실이야?메이븐 리포지토리

종속성이있는 이슈 버전이 .m2 폴더에서 사용 가능한 경우 리포지토리에 쿼리를하지 않고 사용할 수없는 경우 메이븐이 주기적으로 수행 할 것이라고 생각했습니다. 정확한 유물을 발견하고 더 이상 보이지 않을 때까지. 따라서 두 경우 모두 여분의 대역폭을 소비하지 않습니다.

+0

실제로 대답이 중요합니까? 반드시 필요로하는 저장소 만 추가하면됩니다. –

답변

1

this question에 표시된 것처럼 Maven은 원격 저장소에서 이미 로컬 저장소에서 사용할 수있는 경우에도 종속성을 검색합니다. 이는 SNAPSHOT 종속성 또는 pom.xml이 누락 된 종속성에 대해 발생합니다. 따라서 블로그 게시물을 가정 할 수있는 것은 빌드가 이러한 범주에 속하는 경우 Maven은 모든 빌드에서 정의한 원격 저장소를 검색한다는 것입니다 (실제로 SNAPSHOTS의 경우 Maven에서 사용/사용 안 함으로 검색 할 저장소를 제한 할 수 있습니다 필요한 경우 각 저장소에서 SNAPSHOTS). 그것이 무엇을 찾고있는 지 찾을 수 없다면 그것은 모든 저장소를 스캔해야합니다. 왜냐하면 포기하기 전에 저장소가 많을수록 스캔 시간이 길어집니다 (그리고 스냅 샷의 경우에는 모든 어쨌든 하나의 저장소에서 업데이트 된 버전을 찾으면 이벤트가 발생하기 때문에 다른 저장소가 더 새로운 버전을 보유하지 못한다는 것을 "알 수"못합니다. Maven이 찾은 의존성을 실제로 발견하고 검색을 중지하는 경우에도 의존성이 발견 된 저장소가 마지막으로 검색된 것이므로 다른 모든 저장소가 검색되기 전에 가능합니다.

1

프로젝트를 빌드 할 때 m2 저장소로 이동하여 jar가 이미 존재하는지 확인하고 그렇지 않은 경우 중앙 저장소에서 jar를 다운로드합니다. 따라서 항아리가 다운로드되면 프로젝트를 빌드 할 때 시간이 걸리지 않습니다.