2011-08-10 1 views
1

우리는 SVN을 Maven Repositary로 사용하고 있습니다. 우리는 SVN으로 백업 된 Maven 저장소를 사용하는 것은 좋지 않다는 것을 알았지 만, 우리 조직 내에서 한계가 있기 때문에 계속해야합니다. 현재 사용되는 SVN 지원 저장소는 부분적으로 구현되었습니다. 우리는 두 가지 다른 지리적 위치에서 일하는 개발자가 있습니다. 지금 우리가 직면 한 문제는 개발자가 maven repo (svn 저장소)에 이슈를 추가 할 때마다 다른 모든 개발자가 수동으로 로컬 svn 뷰를 업데이트하여 mvn clean 패키지를 수행하기 전에 새로 추가 된 이슈를 가져와야한다는 것입니다.SVN Backed Maven Repo

유물이 로컬에 존재하지 않으면 svn maven 저장소에서 로컬 저장소로 이슈를 자동으로 다운로드하는 방법이 있습니까?

SVN은 HTTPS 프로토콜을 사용하여 액세스 할 수 있도록 웹 서버에서 호스팅됩니다. 우리는 maven 2.2 버전을 사용합니다.

빌드 출력 (jar \ war)을 scm에 직접 배포하는 wagon plugin을 사용해 보았습니다. 우리는 빌드 출력 배치에 관심이 없습니다. 로컬에없는 경우 svn maven repo에서 아티팩트를 자동으로 다운로드하는 솔루션이 필요합니까?

답변

2

SVN 저장소가 해당 아티팩트를 개발 팀에 공개하는 방법에 대해서는 언급하지 않습니다. Maven 저장소 (표준 Maven 저장소 레이아웃을 준수)라면 POM의 "저장소"섹션에 URL을 지정할 수 있습니다. 로컬 저장소를 업데이트하는 작업이 더 이상 필요하지 않습니다.

Subversion을 점검 한 내용이 Maven 저장소 레이아웃이 아닌 것으로 의심됩니다. 새 이슈 버전이 새 파일로 체크인되는 경우, 서브 버전 사용의 주요 이점 중 하나를 잃게됩니다 ....

다음과 같이 Maven 저장소 관리자가 제공하는 기능을 설명합니다. Nexus. 새로운 저장소 기술을 사용하는 것을 꺼리는 것을 이해하지만, Subversion과 같은 SCM 시스템은 주로 텍스트 파일의 변경 내용을 추적하도록 설계되었습니다. 당신이 진정 루프에서 전복을 유지하고자하는 경우

결론적으로, 나는 두 가지 옵션 중 하나 좋을 것 : 로컬 저장소의 내용을 제어 할 수

  1. 사용 전복. (타사 종속성 및 개발자가 생성 한 아티팩트)
  2. Nexus과 같은 저장소 관리자를 사용하십시오. Nexus가 외부 저장소의 캐시 된 콘텐츠를 관리하도록하지만 로컬 호스팅 저장소의 콘텐츠를 Subversion에 위임합니다.
+0

우리는 SVN에서 지원하는 메이븐 레포에서 타사 종속성 및 아티팩트를 유지합니다. 거기에 새로운 의존성이 프로젝트에 추가 될 때마다 모든 개발자가 필요합니다 svn 로컬 복사본을 수동으로 업데이 트됩니다. SVN 메이븐 레포는 https를 통해 액세스됩니다. – Arunkumar

+0

우리는 SVN에서 지원하는 메이븐 레포에서 제 3 자의 의존성과 거의 아티팩트를 유지하지 않습니다. maven이 기대하는 기본 디렉토리 레이아웃을 사용하여 모든 종속성 및 아티팩트를 체크인합니다. 저장소 태그에 svn maven repo url을 필요한 자격 증명과 함께 추가하려고했지만 빌드 중에 오류가 발생하여 리소스 오류를 찾을 수 없습니다. SVN 메이븐 레포는 https를 통해 액세스됩니다. 우리는 현재 넥서스 나 인공 레포지토리를 사용할 계획이 없습니다. 의존성이 존재하지 않을 경우 빌드하는 동안 maven repo (제 3 자 바이너리)의 svn 로컬 복사본을 자동으로 업데이트하는 솔루션이 필요합니다. – Arunkumar

+0

Maven 저장소 관리자를 사용할 준비가되지 않았다면 Maven에서 완전히 전환하는 것이 더 나을 것입니다. 종속성을 관리하기 위해 ANT에 아이비 플러그인을 사용할 것을 제안 할 수 있습니다. 흥미롭게도 아이비에는 Subversion에 아티팩트를 저장할 수있는 확인자가 있습니다. http://code.google.com/p/ivysvn/을 참조하십시오. –