문제

Maven 모범 사례와 저장소 관리에 대해 몇 가지 질문이 있습니다.

내 환경에서는 Central Maven 저장소로 나가고 싶지 않고 내부 저장소에 모든 것을 저장하고 싶지 않습니다. 각 사용자가 Settings.xml 파일에 정보를 Maven 저장소에서 스냅 샷이나 릴리스를 사용하지 않아야합니까? 아니면 POM 파일에 있어야합니까?

또한 사용자가 모두 동일한 회사 저장소로 가도록하고 싶습니다. 이 저장소 정보를 POM 또는 Settings.xml에 넣어야합니까? POM에 있다면 Maven은 Repository가 POM을 얻는 위치를 이미 알고 있어야하므로 저장소에가는 것을 어떻게 알 수 있습니까?

도움이 되었습니까?

해결책

큰 프로젝트에서는 여러 저장소를 갖는 것이 가장 좋습니다.

  1. 회사 프록시/캐시는 회사가 외부 사이트의 가용성에 의존하지 않도록 Donwloaded Jars를 현지에서 보관할 것입니다. 일반 저장소처럼 액세스하지만 공개 저장소의 관문입니다.

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

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

설정을 넣는 곳은 맛의 문제입니다. 이 것들을 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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top