Maven Repo에 Nexus 또는 Artifactory를 사용해야합니까?


119

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

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

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


2
귀하의 링크가 너무 객관적이지 않습니다. 다른 쪽 응답 blogs.jfrog.org/2009/01/contrasting-artifactory-and-nexus.html
user58773

Apache 또는 nginx와 같은 일반 http 서버를 고려해야한다고 생각합니다. 그들은 "지루한 기술"( mcfunley.com/choose-boring-technology )입니다.
Johan Walles 2015 년

5
@JohanWalles :이 맥락에서 "불편하고 생산성을 감소시키는 기술"과 더 비슷합니다.
Priidu Neemre

답변:


74

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

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

3
Nexus에는 SNAPSHOTS를 제거 할 수있는 정기적으로 예약 된 작업을 만들기위한 훌륭한 웹 UI가 있습니다. Artifactory에는 (아직) 이것이 없습니다.
HDave 2010

118

" 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 서버에서 모든 종류의 바이너리를위한 일반적인 "바이너리 저장소"가됩니다.


9
미안하지만 여기에서 FUD 냄새가 난다. Nexus는 확실히 "Maven 및 m2eclipse에 고정"되어 있지 않으며 Jenkins, TeamCity 및 Bamboo와 완벽하게 통합됩니다. 간단하고 간단한 REST API가 있습니다. 모든 Nexus 기능은 REST 엔드 포인트로 노출됩니다. Nexus가 "Maven 및 Maven 아티팩트에만 관심이있다"고 말하는 것은 사실이 아닙니다. 또한 .Net (NuGet), Gradle / Ivy, OSGI를 지원하며 Yum RPM 리포지토리를 호스팅 할 수 있습니다. 아티팩트 스토리지 측면에서 tar, zip, rar, par가 표준 Java 아카이브 유형과 함께 포함됩니다.
RCross

25
야, 그 응답은 4 년 전에 게시되었습니다. :) 더 이상 Maven에 관한 것이 아닙니다? 그럼 좋아요!
Evgeny Goldin

3
@EvgenyGoldin은 그의 댓글을 덜 관련성있게 만들지 않습니다 (FUD 부분을 제외하고 ^^).
OddDev

4
이 게시물은 7 년이 지났고 REST API는 도구에 어느 정도 필수이므로 Nexus는 여전히이 문제를 해결하지 못하는 것 같습니다. Nexus3를 사용하면 나머지 API는 기본적으로 rpc입니다. 원하는 작업을 실행하려면 약간의 스크립트를 업로드해야합니다. 반면에 Artifactory는 좋은 문서가있는 잘 고안된 API를 노출하는 것 같습니다.
thecoshman

27

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

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


1
Artifactory는 S3 지속성도 지원합니다.
Tim Ferrell 2015

@TimFerrell, 사실은 아니지만 일반적으로 일하는 대부분의 상점에서 엄청나게 비싼 가격입니다.
Sander Verhagen

21

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


3
그것이 우리에게도 변화를 가져온 것입니다. 대부분 편집증 일 뿐이라고 생각하지만 언제든지 시스템을 쉽게 검사 할 수 있다는 사실을 알면 위로가됩니다.
Jeremy Huiskamp

4
이 때문에 Artifactory에서 Nexus로 전환 할 계획입니다.
Kariem 2009

2
다른 부패 피해자로부터 +1 그 이후로 Archiva와 Nexus를 사용해 왔는데 둘 다 꽤 견고 해 보입니다.
SimonJ 2010

73
이 답변은 구식입니다. 이제 파일 시스템에 개체를 저장하도록 Artifactory를 구성 할 수 있습니다.
M. Dudley

37
내가 Artifactory를 사용하는 한 실제 아티팩트에 대한 파일 시스템 지원이있었습니다. 하지만 주 데이터베이스 서버가 복제되고 백업되기 때문에 어쨌든 데이터베이스를 사용합니다. 파일 시스템 스토리지가 본질적으로 데이터베이스보다 더 안전한지 모르겠습니다. 넥서스에 반대하는 것은 없습니다.이 문제를 해결하려고합니다.
Joshua Davis

9

둘 중 하나의 "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입니다).


8

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

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

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


사실 Artifactory는 이제 GPL입니다.
Brian Fox

5
Nexus OSS는 현재 여러 릴리스에 대해 Ldap을 지원합니다.
브라이언 폭스

1
LDAP 그룹에 대한 Artifactory 지원 은 여전히 ​​프로 기능입니다. jfrog.com/confluence/display/RTF/LDAP+Groups
Steven Magana-Zook

1
업데이트 년 7 월 2015 매트릭스가 마이그레이션 그래서 Codehaus, 지금은 죽은 binary-repositories-comparison.github.io
JBaruch

7

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


5

학습자의 관점에서 나는 둘 사이의 몇 가지 구체적인 차이점을 주목합니다.

  1. Sonatype .war 배포는 현재 Jboss 응용 프로그램 서버에서 지원되지 않지만 Tomcat에서 실행됩니다.
  2. Sonatype은 현재 제가 빠르게 일어나 테스트 할 수있는 Amazon 머신 이미지 (AMI)를 제공하지 않습니다.
  3. Artifactory AMI는 Bitnami에서 제공하며 일어서는 데 단 몇 분, 구성하는 데 몇 분 더 걸리며, 달성하려는 목표에 따라 수십 분 정도 걸립니다.
  4. Artifactory는 클라우드에서 Artifactory의 SaaS 버전을 제공하므로 인프라가 아닌 작업 수행에 집중할 수 있습니다.
  5. Nexus에 대한 경험은 없지만 적어도 처음에는 Artifactory가 매우 직관적이고 구성하기 쉽다는 것을 알았습니다.
  6. 추가됨-숙련 된 전문가에게 괜찮을 수있는 Artifactory 사용자 가이드가 약간의 심도있는 설명을 위해 약간 밝게 표시되어 있습니다. 예를 들어, 먼저 압축을 푼 다음 RedHat의 Jboss EAP Enterprise Repo와 같은 저장소를 추가합니다. 모두 잘 진행되지만 가져온 아티팩트를 보려고 할 때 Artifactory에서 아티팩트가 없다고보고합니까? 오류나 경고가 없으므로 이제 설명을 찾고 있습니다. 이것은 정상입니까, 아니면 정상입니까? doco의 간단한 설명은 올바른 방향을 빠르게 가리킬 수 있습니다. 좋은 공헌자이기 때문에 다른 스타터들의 이익을 위해 프로젝트에 이러한 의견을 추가하고 있습니다.

3

모든 정치 / 종교를 제쳐두고 라이선스는 일부 조직에 차이를 만듭니다.

Nexus는 GPL이 이제 AGPLv3 이고 이제 Eclipse Public License (EPL) 입니다.

Artifactory는 Apache 라이선스 LGPLv3 이며 제품 버전 2.1 부터 라이선스를 받았습니다.

비교를 위해 Archiva 를 고려할 수도 있습니다 . Apache 2.0 라이센스입니다.


5
왜, 이것은 트롤입니다. Linux가 GPL이라는 사실이 조직에서 Linux를 사용하지 못하게 하는가? 도구를 프로그램에 통합하는 것과 사용 하는 것에 는 차이가 있습니다.
Tim O'Brien

1
나는 트롤을 의도하지 않았지만 당신의 요점에 감사드립니다. 텍스트에서 최상급을 제거했습니다.
Zac Thompson

4
@tobrien : FWIW, 일부 조직 (저를 포함하여)은 법적 노출을 두려워하여 GPL 소프트웨어 를 사용할 때 매우 신중 합니다. 나는 그러한 정책의 (부족한) 지혜에 대해 논의하고 싶지 않습니다. 나는 우리가 완전히 동의 할 것이라고 생각합니다. 일부에게는 중요하다고 지적합니다.
Zac Thompson

1
2.1부터 Artifactory는 어쨌든 LGPL입니다.
Brian Fox

1
@Zac @ user145026 코드를 Nexus 라이브러리에 연결하고 있습니까 ?? 그렇지 않다면 왜 GPL 라이선스가 문제인지 알 수 없습니다.
Pascal Thivent

2

Nexus 사용량이 증가하는 반면 Artifcatory 사용량은 일반적으로 고정되어 있습니다.

여기에 이미지 설명 입력

사진은 여기 http://blog.sonatype.com/2014/11/42000-nexus-repository-managers-and-growing/ 에서 찍은 것입니다.

또한 매트릭스 비교 http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix


3
1.이 그림은 Maven Central 호출에만 의존하므로 정확하지 않습니다. Maven Central 이외의 다운로드가 있습니다. 2. Codehaus 지금, 매트릭스로 마이그레이션 죽은 binary-repositories-comparison.github.io
JBaruch

좋은. 더 좋은 사진이 있습니까?
rofrol

여기에서 몇 가지 숫자를 찾을 수 있습니다 .
JBaruch

1
넥서스 편향, jfrog 편향-어느 숫자도 신뢰하지 않습니다.
카일 Wiering

-2

Artifactory와 Nexus는 모두 비슷한 기능 세트를 가지고 있지만 Artifactory의 LDAP 지원은 Nexus보다 더 매력적입니다. Nexus에도 LDAP 지원이 있지만 유료 버전 :-(


1
Google 코드에는 Nexus 용 오픈 소스 LDAP 플러그인이 있습니다.
Brian Fox

3
LDAP 지원은 이제 Nexus 무료 버전에서 제공됩니다. 1.5.0 이후
David Roussel

-2

Hmmm...my experience with artifactory is awful...but I'm a relative newbie so take it with a grain of salt. My overall complaint is that jar files recently uploaded to Artifactory do not seem to get indexed right away - as in for hours - and there does not seem to be a good way to force it. I've tried various things that appeared as if they should have worked, but didn't. I have been working with m2eclipse, adding dependencies to a project that i'm converting from ant. When I try to add a jar that I have just added to artifactory, I expect it to show up as a choice in the selector but it does not.

a coworker told me that they had installed nexus and so far they like it...but I can't vouch for it yet. I'm about to install that on a Linux box as soon as IT can find me one.


3
You are referring to Nexus indexes that are downloaded and consumed by IDEs, in your case - by the m2eclipse plugin. These indexes are periodically downloaded to clients and are not meant to be consumed upon every deployment. Artifactory lets you schedule these index updates or force it. FYI, indexes used by Artifactory searches (UI/REST) are different and are updated immediately and atomically as part of deploying new artifacts. Tools like IntelliJ make use of this by running searches against the repository rather than a locally cached index, using the REST API of Artifactory.
Yoav Landman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.