문제
Maven 모범 사례와 저장소 관리에 대해 몇 가지 질문이 있습니다.
내 환경에서는 Central Maven 저장소로 나가고 싶지 않고 내부 저장소에 모든 것을 저장하고 싶지 않습니다. 각 사용자가 Settings.xml 파일에 정보를 Maven 저장소에서 스냅 샷이나 릴리스를 사용하지 않아야합니까? 아니면 POM 파일에 있어야합니까?
또한 사용자가 모두 동일한 회사 저장소로 가도록하고 싶습니다. 이 저장소 정보를 POM 또는 Settings.xml에 넣어야합니까? POM에 있다면 Maven은 Repository가 POM을 얻는 위치를 이미 알고 있어야하므로 저장소에가는 것을 어떻게 알 수 있습니까?
해결책
큰 프로젝트에서는 여러 저장소를 갖는 것이 가장 좋습니다.
회사 프록시/캐시는 회사가 외부 사이트의 가용성에 의존하지 않도록 Donwloaded Jars를 현지에서 보관할 것입니다. 일반 저장소처럼 액세스하지만 공개 저장소의 관문입니다.
출시 된 라이브러리의 회사 저장소는 제한되어 있으며 내부 라이브러리가 포함되어 있습니다. 이들은 프로젝트 저장소에서 회사 저장소로 "홍보"되는 프레임 워크입니다. 모든 프로젝트에 유용 할 수 있기 때문입니다.
프로젝트 리포지토리에는 프로젝트가 사용하는 아티팩트가 포함되어 있습니다. 하위 프로젝트 아티팩트 등을 포함 할 수 있습니다. 프로젝트의 모든 개발자는 여기에 무언가를 게시 할 수 있어야합니다.
설정을 넣는 곳은 맛의 문제입니다. 이 것들을 settings.xml에 넣었습니다. 내부 리포지토리의 주소가 변경되면 프로젝트를 수정해야합니다.
다른 팁
1 단계: LAN의 서버에 Nexus를 설치하십시오. 설치하기 쉽습니다 (실제로 몇 분 밖에되지 않습니다!)과 견고합니다. 우리는 ~ 50 명의 엔지니어와 많은 CI 서버가 하루 종일 두드리고 있으며 몇 달 동안 안정되었습니다. DNS의 "Nexus.local"이라는 서버에 설치했다고 가정 해 봅시다.
2 단계: settings.xml을 복사합니다 http://www.sonatype.com/books/nexus-book/reference/maven-sect-single-group.html, 호스트 이름을 필요에 따라 수정하고 소스 코드 시스템에 커밋 한 다음 모든 개발자에게 ~/.m2/settings.xml에 복사하도록 지시하십시오.
3 단계: 프로젝트의 pom.xml을 올바르게 설정하십시오. 다음과 같은 모습을 보이는 "배포 관리"섹션을 정의하는 "부모 Pom"을 원할 것입니다.
<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 단계: "MVN 배포"활성화 - Nexus UI로 이동하십시오 ( http : //nexus.local : 8081/nexus ), 사용자를 클릭하고 "배포"를 클릭하고 비밀번호를 제공합니다. 그런 다음 편집하십시오 당신의 ~/.m2/settings.xml을 추가하고 다음을 추가합니다.
<settings>
...
<servers>
<server>
<id>nexus</id>
<username>deployment</username>
<password>PASSWORD</password>
</server>
</servers>
</settings>
"MVN 배포"를 실행하여 작동하는지 확인하고 프로젝트의 아티팩트를 Nexus에 설치해야합니다.
5 단계: Maven에 대한이 훌륭한 문서를 읽으십시오. http://www.sonatype.com/products/maven/documentation/book-defguide