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


5 Answers

" mvn deploy "의 바이너리 저장에 관해서 만 이야기한다면 두 가지 모두 괜찮을 것이라고 확신합니다.

우리는 모든 업그레이드 과정에서 Artifactory를 매우 광범위하게 사용합니다. 많은 프로젝트, 많은 스냅 샷 배포 및 외부 repos proxied. 하나의 문제는 아닙니다. 다른 사람들이 DB, 색인 또는 다른 어떤 문제를 어떻게 경험하는지 설명하기가 어렵습니다. 그런 일은 우리에게 아무 일도 없었습니다. 또한 Artifactory는 디스크에 데이터를 저장하고 메타 데이터를 저장하기 위해 DB 만 사용하므로 매우 유연합니다 ( 자세한 내용은 여기 참조 ).

이러한 응용 프로그램을 매우 다른 용도로 만드는 것은 다른 빌드 도구 및 기술과의 통합에 대한 접근 방식입니다. Nexus와 Sonatype은 Maven과 m2eclipse에서 잠겨 있습니다. 그들은 다른 것을 무시하고 최근에는 독점적 인 허드슨 통합 작업을 시작했습니다 ( Maven 3 웹 세미나 참조). 편집 : 이것은 2017 년부터 더 이상 사실이 아닙니다. Nexus는 다른 빌드 도구를 훨씬 더 크게 지원합니다. 편집 끝

Artifactory는 멋진 Hudson, TeamCity 및 Bamboo 통합Gradle / Ivy 지원을 제공합니다. 따라서 Nexus는 Sonatype "comfort zone"(Maven, m2eclipse)에서 벗어나기 만하면 아무 것도 제공하지 않지만 Artifactory는 모든 주요 제작 도구를 채택하고 공동 작업합니다.

사실, 허드슨으로부터 빌드 아티팩트를 배포 할 수있는 것은, " mvn deploy "가 아니라, " mvn deploy "가 아니라, 큰 차이가 있습니다. Artifactory Hudson 플러그인은 빌드 작업이 끝날 때만 한 번 에 모든 아티팩트 원자 적으로 배포합니다 성공적으로 " mvn deploy "는 각 모듈 다음에 실행되며 빌드 작업이 중간에 실패하면 부분적인 아티팩트 세트를 배포 할 수 있습니다. 모듈 완료시 Maven에서 배포하고 작업 완료시 빌드 서버에서 배포하는 것은 정말 나쁜 일입니다.

알 수 있듯이, Artifactory는 "상자 밖"이라고 생각하지만 Nexus는 "상자 내부"라고 생각하고 Maven 및 Maven 유물에만 관심이 있습니다.

Artifactory를보다 쉽게 ​​사용할 수있게 해주는 또 다른 요소는 클라우드 기반 Artifactory Online 솔루션 입니다. 한 달에 약 80 달러에 대해 Artifactory 인스턴스가 있으며, 서버를 위해 전용 서버가 필요하지 않습니다.

Artifactory에는 간단하고 직접적인 REST API가 있으며 Nexus에서 작동하는 방식을 알지 못합니다. Nexus 에는 쉽게 사용할 수 있는 REST API 도 있습니다.

요약하면 Maven 아티팩트의 기본 저장을 위해 두 가지 모두 괜찮다고 생각합니다. 그러나 Nexus가 엄격하게 "Maven 저장소 관리자"가되는 동안, Artifactory는 어떤 빌드 도구와 CI 서버에서든 어떤 종류의 바이너리 파일이라도 일반적으로 "바이너리 저장소"가됩니다.

Question

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

그러나 우리는 모든 타사를 사전에 다운로드 할 필요가 없도록 중앙 집중식으로 캐시 할 수있는 로컬 저장소로 졸업 할 준비가되어 있습니다 (하지만 여전히 로컬 저장소를 사용할 수는 있습니다). 또한 야간 빌드의 내부 빌드 아티팩트를 게시하여 개발자가 세상을 만들 필요가 없도록하고 싶습니다.

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




Artifactory 2와 Nexus 1.3에 대한 연구를했습니다. 내가 찾은 주요 차이점을 여기에 열거 해 놓았습니다.

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

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







흠 ... 인공물에 대한 나의 경험은 끔찍하다.하지만 나는 상대적으로 초보자 다. 내 전반적인 불만은 최근에 Artifactory에 업로드 된 jar 파일이 즉시 인덱싱되지 않는 것 같고 몇 시간 동안과 같이 강제로 적용 할 수있는 좋은 방법이 아닌 것 같습니다. 나는 그들이 일해야만하는 것처럼 보이는 다양한 것들을 시도했지만, 그렇지 않았다. 나는 m2eclipse로 작업 중이며, ant에서 변환하는 프로젝트에 종속성을 추가합니다. 방금 artifactory에 추가 한 항아리를 추가하려고하면 선택기에 선택 항목으로 나타나기를 기대하지만 그렇게하지는 않습니다.

직장 동료가 넥서스를 설치했다는 말을하고 지금까지는 좋아하지만 ... 아직 보증 할 수는 없습니다. IT 부서에서 저를 찾을 수있게 되 자마자 리눅스 상자에 설치하려고합니다.




학습자의 관점에서 필자는 두 사람 사이의 몇 가지 구체적인 차이점을 주목한다.

  1. Sonatype .war 배포는 당시 Jboss 응용 프로그램 서버에서 지원되지 않지만 Tomcat에서 실행됩니다.
  2. Sonatype은 현재 Amazon Machine Image (AMI)를 제공하지 않고 있으며, 신속하게 일어 서서 테스트 할 수 있습니다.
  3. Artifactory AMI는 Bitnami에서 제공하며 몇 분만 기다려야하고 구성하는 데 몇 분이 걸립니다. 달성하려는 목표에 따라 수십 분이 걸릴 수도 있습니다.
  4. Artifactory는 SaaS 버전의 Artifactory를 클라우드에 제공하므로 인프라가 아닌 일을 처리하는 데 집중할 수 있습니다.
  5. Nexus에 대한 경험이 없지만 처음에는 Artifactory를 매우 직관적이고 쉽게 구성 할 수있었습니다.
  6. 덧붙여서 - 숙련 된 프로에게는 괜찮을지도 모르는 Artifactory User Guide가 깊이있는 설명을 좀 더 밝히고 있습니다. 예를 들어, 시작, 하나의 압축을 푼 다음 저장소를 추가합니다. 예를 들어 RedHat의 Jboss EAP Enterprise Repo를 말하십시오. 모든 것이 잘되었지만 가져온 아티팩트를 보려고 시도했을 때 Artifactory가 0 개의 아티팩트를보고 했습니까? 오류나 경고가 없으므로 지금 설명을 찾고 있습니다. 이것은 정상인가 아닌가? doco에서 간단한 설명을하면 올바른 방향을 가리킬 수 있습니다. 훌륭한 기고자이기 때문에 다른 선발의 이익을 위해 프로젝트에 이러한 주석을 추가하고 있습니다.



Artifactory는 데이터베이스에 아티팩트를 저장합니다. 즉, 문제가 발생하면 모든 아티팩트가 사라집니다. Nexus는 귀중한 아티팩트에 플랫 파일을 사용하므로 모두 잃어버린 것에 대해 걱정할 필요가 없습니다.






Related