[maven-2] Maven Repo에 Nexus 또는 Artifactory를 사용해야합니까?

대규모 빌드 프로세스 (> 100 개 모듈)에 Maven을 사용하고 있습니다. 우리는 소스 제어에 외부 종속성을 저장하고이를 사용하여 로컬 저장소를 업데이트했습니다.

그러나 우리는 모든 타사를 사전에 다운로드 할 필요가 없도록 중앙을 캐시 할 수있는 로컬 리포지토리로 이동할 준비가되어 있습니다 (하지만 가져올 로컬 리포지토리는 계속 보유 할 수 있음). 또한 개발자가 세계를 구축 할 필요가 없도록 야간 빌드에서 내부 빌드 아티팩트를 게시하려고합니다.

Nexus와 Artifactory를 고려하고 있습니다. 하나를 선호하는 이유는 무엇입니까? 우리가 고려해야 할 다른 것이 있습니까?



답변

Artifactory에 대해 잘 모르지만 Nexus를 사용하는 이유는 다음과 같습니다.

  • Dead simple install (그리고 1.2 이후로 죽은 간단한 업그레이드도 마찬가지입니다)
  • 아주 좋은 웹 UI
  • 유지 관리가 쉽고 관리 부담이 거의 없음
  • 최근에 설치되고 손상된 아티팩트 및 오류에 대한 RSS 피드를 제공합니다.
  • 여러 저장소를 그룹화하여 여러 소스를 미러링 할 수 있지만 settings.xml에 하나 또는 두 개의 항목 만 필요합니다.
  • Maven에서 배포는 즉시 작동합니다 (WebDAV 해킹 등이 필요 없음).
  • 그것은 무료입니다
  • 액세스 경로를 리디렉션 할 수 있습니다 (예 : 일부 손상된 pom.xml에는 “xxx”에서 “abc”가 필요함). POM을 패치하는 대신 Nexus의 버그를 수정하고 아티팩트가 실제로있는 위치로 요청을 리디렉션 할 수 있습니다.

답변

mvn deploy” 에서 바이너리를 저장하는 것에 대해서만 이야기하면 둘 다 잘 될 것이라고 확신합니다.

우리는 모든 업그레이드와 함께 Artifactory를 매우 광범위하게 사용합니다. 많은 프로젝트, 배포 된 수많은 스냅 샷 및 프록시 된 외부 저장소. 하나의 문제가 아닙니다. 다른 사람들이 DB, 인덱싱 또는 기타 문제를 어떻게 경험하는지 설명하기가 어렵습니다. 우리에게는 그런 일이 없었습니다. 또한 Artifactory는 디스크에 데이터를 저장하고 메타 데이터를 저장하기 위해 DB 만 사용할 수 있습니다. 매우 유연 합니다. ).

이러한 응용 프로그램을 매우 다르게 만드는 것은 다른 빌드 도구 및 기술과의 통합에 대한 접근 방식입니다. Nexus와 Sonatype은 Maven과 m2eclipse에 거의 고정되어 있습니다. 그들은 다른 것을 무시하고 최근에야 자신의 독점 Hudson 통합 작업을 시작했습니다 ( Maven 3 웨비나 참조 ).
편집 : 이것은 2017 년부터 더 이상 사실이 아닙니다. Nexus는 다른 빌드 도구를 훨씬 더 많이 지원합니다. 편집의 끝

Artifactory는 멋진 Hudson, TeamCity 및 Bamboo 통합Gradle / Ivy를 제공합니다. 지원을 제공합니다. 따라서 Nexus는 Sonatype “편안함”(Maven, m2eclipse)에서 벗어나면 아무것도 제공하지 않지만 Artifactory는 모든 주요 빌드 도구를 수용하고 협력합니다.

실제로 작업이 ” mvn deploy“가 아닌 Hudson에서 빌드 아티팩트를 배포 할 수 있다는 것은 큰 차이입니다. Artifactory Hudson 플러그인은 빌드 작업이 성공적으로 완료된 경우에만 모든 아티팩트 원자 적 방식으로 배포 합니다. ” mvn deploy“은 각 모듈 이후에 실행되며 중간에 빌드 작업이 실패하는 경우 일부 아티팩트 세트를 배포 할 수 있습니다. 모듈 완료시 Maven에서 배포하고 작업 완료시 빌드 서버에서 배포하는 것은 정말 나쁜 일입니다.

보시다시피 Artifactory는 “상자 밖”이라고 생각하는 반면 Nexus는 “상자 안”이라고 생각하고 Maven 및 Maven 아티팩트에만 관심이 있습니다.

Artifactory를보다 쉽게 ​​액세스 할 수있는 또 다른 방법은 클라우드 기반 Artifactory Online 솔루션 입니다. 한 달에 약 80 달러에 자체 Artifactory 인스턴스가 있으므로이를 위해 서버를 할당 할 필요가 없습니다.

Artifactory에는 간단하고 간단한 REST API 가 있지만 Nexus에서 어떻게 작동하는지 모릅니다.
Edit Nexus 에는 쉽게 사용할 수 있는 REST API 도 있습니다.

요약하면 Maven 아티팩트의 기본 저장을 위해 둘 다 괜찮다고 생각합니다. 그러나 Nexus는 엄격하게 “Maven 저장소 관리자”가있는 것을 중단하지만 Artifactory는 모든 빌드 도구 및 CI 서버에서 모든 종류의 바이너리를위한 일반적인 “바이너리 저장소”가됩니다.


답변

Artifactory는 파일 시스템 및 데이터베이스 스토리지 백엔드를 모두 지원 합니다 . 저장소는 체크섬 기반이며 동일한 바이너리는 저장소에 몇 번 표시 되든 한 번만 저장되므로 Artifactory는 저장소 측면에서 더 효율적입니다. 이 아키텍처로 인해 이동 및 복사도 매우 저렴합니다 (Nexus에는 이동 / 복사를위한 REST가 없습니다. 파일 시스템에서 항목을 이동 한 다음 저장소에서 수정 조치를 실행하여 컨텐츠가 변경되었음을 알려야합니다).

또 다른 중요한 차별화 요소는 Artifactory가 배포 된 아티팩트, 해결 된 종속성 및 빌드 실행과 관련된 환경 데이터에 대한 정보를 캡처하기 위해 Hudson 및 TeamCity와 고유하게 통합되어 전체 빌드 추적 성을 제공한다는 것입니다.


답변

Artifactory는 아티팩트를 데이터베이스에 저장합니다. 즉, 문제가 발생하면 모든 아티팩트가 사라집니다. Nexus는 귀중한 유물에 플랫 파일을 사용하므로 모든 유물을 잃어 버릴 염려가 없습니다.


답변

둘 중 하나의 “Pro”기능 (예 : 스테이징 리포지토리, 아티팩트 프로모션, NuGet)이 필요한 경우 웹 사이트에 표시되는 다양한 가격 모델을 고려해야합니다.

요약해서 말하자면:

  • Artifactory Pro
    • 서버 당 지불
    • 증가 된 서비스 시간에 대해 더 많은 비용을 지불 할 수 있습니다.
  • Nexus Pro
    • 좌석 당 지불합니다 . 즉, 아티팩트를 다운로드하는 개발자 수
    • 지원 서비스는 월-금 0800-2000 ET 만 가능합니다.

사용자 수에 관계없이 Nexus Pro는 Artifactory의 연간 $ 7,450 “Silver Value Pack”과 대체로 동등한 지원 서비스를 제공합니다.

연간 7,450 달러로 약 67 개의 Nexus Pro 시트를 구매할 수 있습니다 (1-50 @ $ 108, 나머지는 $ 120).

가격과 지원만으로도 Nexus Pro는 67 명의 사용자를 확보 할 때까지 의미가 있으며,이 시점에서 Artifactory가 더 저렴한 옵션이됩니다.

모든 지원을 사내에서 수행하는 경우; 그러나 그 마법 포인트는 약 23 명의 사용자입니다 (Artifactory의 가장 기본적인 지원은 연간 $ 2,750입니다).


답변

아티 팩토리 2와 넥서스 1.3에 대해 재밌게 조사했습니다. 내가 찾은 주요 차이점을 여기에 나열하겠습니다.

  • Artifactory는 메타 데이터와 선택적으로 파일을 DB에 저장하고 Nexus는 파일 시스템에 직접 기록합니다. 프로가 있습니다. 그리고 단점. 각 접근 방식에 대해. DB는 트랜잭션을 지원하는 반면 FS에서는 저장된 파일에 직접 액세스 할 수 있습니다.
  • Artifactory는 특히 디스크 공간에 대한 시스템 요구 사항이 더 높습니다.
  • Artifactory는 LDAP를 지원하는 반면 Nexus는 유료 버전에서만 지원합니다. 반면 Nexus 용 무료 LDAP 플러그인은 Google 코드에서 사용할 수 있습니다.

가장 완벽한 비교 : http://binary-repositories-comparison.github.io/


답변

Artifactory를 사용해야합니다. 최신 버전은 실제 점프였습니다. 저장소를 점진적으로 백업 할 수 있습니다. 즉, 모든 아티팩트를 저장하고 유지 관리 할 수 ​​있습니다. 웹 UI를 사용하기 쉽고 설정하기가 정말 쉽습니다. 새로운 버전 2.0