2011-08-24 2 views
1

오프라인 네트워크에 Maven 리포지토리가 있습니다.maven .m2 리포지토리 병합

내용을 업데이트하고 다른 저장소에서 병합해야합니다.

이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 나는 왜건 플러그인 Wagon을 보았다. 그러나 나는 더 좋은 방법이 있을지도 모른다라고 염려한다.

로컬 저장소를 오프라인 저장소 관리자로 바꿀 수는 있지만 문제가 여전히 남아 있으므로 온라인 저장소에서 정기적으로 병합하여 Repo를 업데이트해야합니다.

답변

1

조작하는 동안 모든 메타 데이터 (실행중인 다음 mvn 명령으로 복구해야 함)를 제거 할 수 있다면 rsync을 사용하십시오.

구체적인 저장소를 작성하는 것이 필수가 아닌 경우 Nexus 및 그 groups을 사용하는 것이 좋습니다.

+0

Vicent는 "구체적인"저장소의 의미를 명확히 할 수 있습니까? – stimpy

+1

"추상적"의 반대를 의미합니다. Nexus에서는 정면의 일종 인 그룹을 정의 할 수 있습니다. 아마도 많은 수의 리포지토리가 뒤에서 유물을 얻는 데 사용됩니다. 따라서 위와 같은 위임을 필요로하는 경우 프록시 스타일 저장소가 옵션이 아닐 수도 있습니다. 귀하의 질문에 단일 저장소, USB 키에 넣을 수있는 유형을 구축에 대 한되었을 수도 있습니다 ... – Vincent

+0

고마워요. 내 질문을 업데이트했습니다. – stimpy

1

Vincent's answer이 맞지만 .m2/repository 디렉토리에서이 작업을 수행하지 않는 것이 좋습니다. 이 디렉토리는 캐시이며 언제든지 제거 할 수 있어야합니다. Maven이 .m2/repository 디렉토리를 관리 할 수 ​​있도록 저장소 관리자 (예 : Archiva, Nexus 또는 Artifactory, 또는 HTTP 서버)를 설정하고 저장소 컨텐트를 호스트하는 것을 고려해야합니다.

+0

"해당 디렉토리는 캐시입니다"부분을 명확히 할 수 있습니까? 유일한 레포 인 경우 어떻게 캐시가 될 수 있습니까? 또한 넥서스를 보았지만 다른 레포에서 병합하는 기능을 보지 못했습니다. – stimpy

+1

Maven에서 원격 저장소는 표준 소스이며 로컬 저장소는 일부 원격 저장소에서 검색된 캐시입니다. 이는 리모컨이 사용자간에 공유되도록 설계 되었기 때문이며 로컬은 공유되지 않기 때문입니다. Maven은 캐시와 함께 작동하지만, 캐시에서 삭제하면 원격 저장소에서 캐시를 다시 가져올 수 있습니다. 자신이하는 것과 같은 로컬 저장소가 없기 때문에 다른 사용자가 빌드를 수행 할 수없는 경우 빌드가 작동하지 않습니다. –

+0

이 이해되었습니다. 질문 clairfied – stimpy