2009-06-14 4 views
10

메이븐 프랙티스와 리포지토리에 관한 몇 가지 질문이 있습니다.메이븐 베스트 프랙티스

제 환경에서는 필자가 중앙 저장소에 가지 않고 모든 것을 내부 저장소에 저장하려고합니다. 각 사용자가 maven 저장소의 스냅 샷이나 릴리즈 사용을 중지하는 settings.xml 파일에 정보를 저장하도록하거나 POM 파일에 저장해야합니까?

또한 모든 사용자가 동일한 회사 리포지토리에 있어야합니다. 이 저장소 정보를 pom 또는 settings.xml에 넣어야합니까? 그것이 pom에 있다면 저장소가 pom을 가져올 위치를 이미 알고 있어야하므로 어떻게 저장소에 갈지를 알 수 있습니까?

답변

6

대규모 프로젝트의 경우 여러 개의 리포지토리가있는 것이 가장 좋습니다.

  1. 회사 프록시/캐시는 회사가 외부 사이트의 가용성에 의존하지 않도록 로컬로로드되지 않은 jar를 로컬에 저장합니다. 일반 저장소처럼 액세스되지만 공개 저장소에 대한 게이트웨이입니다.

  2. 출시 된 라이브러리의 회사 리포지토리는 제한되어 있으며 내부 라이브러리가 포함되어 있습니다. 이들은 모든 프로젝트에 유용 할 수 있기 때문에 프로젝트 저장소에서 회사 저장소로 "승격"되는 프레임 워크입니다.

  3. 프로젝트 리포지토리에는 프로젝트에서 사용하는 아티팩트가 포함되어 있습니다. 하위 프로젝트 아티팩트 등을 포함 할 수 있습니다. 프로젝트의 모든 개발자는 여기에 무언가를 게시 할 수 있어야합니다.

설정을 취향에 맞게 조정하십시오. 나는 이러한 것들을 settings.xml에 넣었습니다. 내부 리포지토리의 주소가 변경되면 프로젝트를 수정해야하기 때문입니다.

+0

이 모두 정확 - 나는 모두에게 좋은 솔루션 넥서스 (http://nexus.sonatype.org/)에보고 권 해드립니다 위. –

+0

감사합니다. 나는 Apache의 Archiva를 단순하게 사용하고 있었지만 Nexus도 살펴볼 것입니다. 우리는 꽤 작은 프로젝트를 진행하고 있습니다. 일찍이 이러한 일을 시작하려고했습니다. Nexus에서 +1 –

+1

+1. 설치와 작동이 쉽습니다. –

10

1 단계 : LAN의 서버에 nexus를 설치하십시오. 탁월한 기능 - 설치가 쉽습니다 (실제로 몇 분 만에!). 우리에게는 ~ 50 명의 엔지니어와 하루 종일 많은 CI 서버가 있으며 여러 달 동안 안정적이었습니다. DNS에서 "nexus.local"이라는 서버에 설치했다고 가정 해 보겠습니다.

2 단계 : http://www.sonatype.com/books/nexus-book/reference/maven-sect-single-group.html에서 Settings.XML의 복사 필요에 따라 호스트 이름을 수정, 소스 코드 시스템에 커밋과 ~/.m2/Settings.XML의에 복사하는 모든 개발자를 말한다.

3 단계 : 프로젝트의 pom.xml을 올바르게 설정하십시오.

<distributionManagement> 
    <snapshotRepository> 
     <id>nexusSS</id> 
     <name>Nexus Snapshot Repository</name> 
     <url>http://nexus.local:8081/nexus/content/repositories/snapshots</url> 
    </snapshotRepository> 
    <repository> 
     <id>nexusRelease</id> 
     <name>Nexus Release Repository</name> 
     <url>http://nexus.local:8081/nexus/content/repositories/releases</url> 
    </repository> 
    </distributionManagement> 

4 단계 : 당신은 다음과 같이 보이는 "distributionManagement"절을 정의하는 "부모 POM"을 할 것 "MVN 배포"사용 - 당신의 넥서스 UI로 이동 http://nexus.local:8081/nexus 같은 (뭔가를), 사용자를 클릭하고 "배포"를 클릭 한 다음 암호를 지정하십시오. 그런 다음 당신의 ~/.m2/Settings.XML의 편집이 추가 : 그것은 "MVN 배포"를 실행하여 작동

<settings> 
    ... 
    <servers> 
    <server> 
     <id>nexus</id> 
     <username>deployment</username> 
     <password>PASSWORD</password> 
    </server> 
    </servers> 
</settings> 

확인하는 것이, 당신은 넥서스에 프로젝트의 아티팩트를 설치해야합니다.

5 단계 : 받는다는이 뛰어난 문서 읽기 : http://www.sonatype.com/products/maven/documentation/book-defguide

+2

"4 단계"의 경우 3 단계에서 서버의 ID를 distributionManagement의 ID와 일치시키지 않으시겠습니까? – Nicholas

관련 문제