문제

우리는 큰 빌드 프로세스 (> 100 모듈)에 Maven을 사용하고 있습니다. 우리는 외부 의존성을 소스 컨트롤에 저장하고이를 사용하여 로컬 리포지어를 업데이트했습니다.

그러나 우리는 중앙을 캐시 할 수있는 로컬 리포를 졸업 할 준비가되어있어 모든 타사를 사전에 다운로드 할 필요가 없지만 (그러나 우리는 여전히 로컬 리포를 가져올 수 있습니다). 또한 개발자가 세상을 건설 할 필요가 없도록 야간 빌드에서 내부 빌드 아티팩트를 게시하고자합니다.

우리는 넥서스와 인공물을 고려하고 있습니다. 서로를 선호하는 이유는 무엇입니까? 우리가 고려해야 할 다른 사람들이 있습니까?

도움이 되었습니까?

해결책

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

  • Dead Simple Install (1.2 이후 Dead Simple 업그레이드도)
  • 아주 좋은 웹 UI
  • 유지하기 쉽고 거의 관리 오버 헤드가 없습니다
  • 최근에 설치된 RSS 피드, 부러진 아티팩트 및 오류를 제공합니다.
  • 여러 리포지토리를 그룹화 할 수 있으므로 여러 소스를 미러링 할 수 있지만 Settings.xml에서 하나 또는 두 개의 항목 만 필요합니다.
  • Maven에서 배포하는 것은 상자 밖으로 작동합니다 (Webdav 해킹이 필요 없음).
  • 무료입니다
  • 액세스 경로를 리디렉션 할 수 있습니다 (예 : 일부 파손 된 pom.xml은 "xxx"에서 "ABC"가 필요함). POM을 패치하는 대신 Nexus의 버그를 수정하고 아티팩트가 실제로있는 곳으로 요청을 리디렉션 할 수 있습니다.

다른 팁

당신이 바이너리를 저장하는 것에 대해서만 이야기한다면 "mvn deploy"둘 다 잘할 것입니다.

우리는 그 과정에서 모든 업그레이드와 함께 인공물을 매우 광범위하게 사용합니다. 많은 프로젝트, 수많은 스냅 샷 배포 및 외부 리포지토리가 프록시되었습니다. 단일 문제가 아닙니다. 다른 사람들이 DB, 인덱싱 또는 기타 문제를 어떻게 경험하는지 설명하기가 어렵다는 것을 알게되었습니다. 그런 일은 우리에게 일어난 적이 없습니다. 또한 Artifactory는 디스크에 데이터를 저장하고 메타 데이터를 저장하는 데 DB 만 사용할 수 있습니다.여기에서 더 많이보십시오).

이러한 응용 프로그램을 만드는 이유 매우 다른 빌드 도구 및 기술과의 통합에 대한 접근 방식은 다릅니다. Nexus와 Sonatype는 Maven과 M2eclipse에 거의 잠겨 있습니다. 그들은 다른 것을 무시하고 최근에만 자신의 독점 허드슨 통합 작업을 시작했습니다 (그들의 참조 Maven 3 웹 세미나). 편집하다: 2017 년에 Nexus가 제공하는 기간 동안 이것은 더 이상 사실이 아닙니다. 다른 빌드 도구에 대한 훨씬 더 큰 지원 편집 종료

인공물은 굉장한 것을 제공합니다 Hudson, TeamCity 및 대나무 통합, 그리고 gradle / 여자 이름 지원하다. 따라서 Nexus는 Sonatype "Comfort Zone"(Maven, M2eclipse)에서 나오면 아무것도 제공하지 않지만 인공물은 모든 주요 빌드 도구와 함께 포옹하고 협력합니다.

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

보시다시피, 인공물은 "상자 밖" "상자 외부"를 생각하는 반면, Nexus는 "상자 안에"생각하고 Maven과 Maven Artifacts에만 관심이 있습니다.

인공물을보다 접근 할 수있는 다른 것은 그들의 것입니다 클라우드 기반 인공물 온라인 솔루션. 한 달에 약 $ 80의 경우 자신의 인공 인스턴스가 있으므로 서버를 전용 할 필요가 없습니다.

인공물에는 a 간단하고 간단한 휴식 API, 그것이 Nexus에서 어떻게 작동하는지 모릅니다.편집하다 연결점 REST API도 있습니다 쉽게 사용할 수 있습니다.

요약하면, Maven Artifacts의 기본 저장에 대해서는 둘 다 괜찮다고 생각합니다. 그러나 Nexus는 엄격하게 "Maven Repository Manager"가되는 것을 멈추지 만, Artifactory는 계속해서 모든 종류의 Binaries를위한 일반적인 "Binaries Storage", 모든 빌드 도구 및 CI 서버입니다.

인공물 지원 둘 다 파일 시스템 및 데이터베이스 스토리지 백엔드. 스토리지는 체크섬 기반이며 동일한 바이너리는 리포지토리에 몇 번이나 나타나더라도 인공물이 더 효율적으로 저장된 저장된 수준으로 한 번만 저장됩니다. 이 아키텍처로 인해 Move and Copy도 매우 저렴합니다 (Nexus에서는 이동/복사에 대한 휴식이 없습니다. 파일 시스템에서 물건을 이동 한 다음 Repo에서 수정 조치를 실행하여 콘텐츠가 변경되었음을 알 수 있습니다).

또 다른 중요한 차별화 요소는 인공물이 Hudson 및 TeamCity와의 고유 한 통합을 가지고 있으며 배포 된 아티팩트, 해결 된 종속성 및 빌드 실행과 관련된 환경 데이터에 대한 정보를 캡처하여 전체 빌드 추적 성을 제공합니다.

인공물은 아티팩트를 데이터베이스에 저장합니다. 즉, 무언가 잘못되면 모든 아티팩트가 사라졌습니다. Nexus는 귀중한 유물에 평평한 파일을 사용하므로 모두 잃어버린 것에 대해 걱정할 필요가 없습니다.

스테이징 리포지토리, 아티팩트 프로모션, NUGET)의 "Pro"기능이 필요한 경우 웹 사이트에 표시되는 다양한 가격 책정 모델을 고려해야합니다.

요약해서 말하자면:

  • 인공물 프로
    • 당신은 지불합니다 서버 당
    • 서비스 시간 증가에 대해 더 많은 비용을 지불 할 수 있습니다
  • 넥서스 프로
    • 당신은 지불합니다 좌석 당, 즉 유물을 다운로드하는 개발자 수
    • 지원 서비스는 Mon-Fri 0800-2000 ET입니다.

Nexus Pro는 사용자 수에 관계없이 인공물의 $ 7,450/년 "Silver Value Pack"과 동등한 지원 서비스를 제공합니다.

연간 $ 7,450은 약 67 개의 Nexus Pro 좌석 (1-50 @ $ 108, 나머지 @ $ 120)을 구입합니다.

가격과 지원만으로도 Nexus Pro는 67 명의 사용자에게 도달 할 때까지 의미가 있습니다.이 시점에서 인공물은 저렴한 옵션이됩니다.

사내에서 모든 지원을하고 있다면; 그러나이 Magic Point는 약 23 명의 사용자입니다 (Artifactory의 가장 기본적인 지원 제공은 $ 2,750/년).

나는 인공물 2와 Nexus 1.3에 대해 이야기했습니다. 여기에 내가 찾은 주요 차이점을 여기에 나열하겠습니다.

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

가장 완전한 비교 : http://binal-repositories-comparison.github.io/

인공물을 사용해야합니다. 최신 버전은 리포지토리를 점차적으로 백업 할 수있는 진정한 점프였습니다. 즉, 모든 아티팩트를 저장하고 사용하기 쉬운 웹 UI를 유지할 수 있으며 실제로 쉽게 설정할 수 있습니다. 새로운 버전 2.0

학습자의 관점에서 나는 둘 사이의 특정 차이점에 주목합니다.

  1. Sonatype .WAR 배포는 Tomcat에서 실행되지만 당시 JBoss 응용 프로그램 서버에서 지원되지 않습니다.
  2. 소나 타입은 현재 AMI (Amazon Machine Image)를 제공하지 않습니다. 현재 빨리 일어 서서 테스트 할 수 있습니다.
  3. 인공물 AMI는 Bitnami에 의해 제공되며 몇 분 밖에 걸리지 않으며 몇 분 더 구성하는 데 몇 분이 더 걸리며, 달성하려는 일에 몇 분에 따라 수십 분이 걸릴 수 있습니다.
  4. Artifactory는 클라우드에서 SaaS 버전의 인공물을 제공하므로 인프라보다는 작업을 수행하는 데 집중할 수 있습니다.
  5. 나는 Nexus에 대한 경험이 없지만 인공물은 매우 직관적이고 처음에는 구성하기 쉽다는 것을 알았습니다.
  6. 추가 - 노련한 Pro에게는 괜찮을 수있는 인공 사용자 가이드가 깊이있는 설명에 약간 가볍습니다. 예를 들어, 시작, 하나의 압축을 풀고 저장소를 추가하고 Redhat의 Jboss EAP Enterprise Repo라고합니다. 모든 것이 잘 진행되지만 수입 된 아티팩트 인 아티팩트를 보려고했을 때 제로 아티팩트를보고합니까? 오류 나 경고가 없으므로 이제 설명을 찾고 있습니다. 이것은 정상입니까 아니면 정상입니까? DOCO의 간단한 설명은 올바른 방향을 빠르게 가리킬 수 있습니다. 좋은 기고자이기 때문에 다른 스타터의 이익을 위해이 의견을 프로젝트에 추가하고 있습니다.

모든 정치/종교를 제외하고, 라이센스는 일부 조직에 차이를 만듭니다.

넥서스입니다 GPL 지금 AGPLV3 그리고 지금 일식 공개 라이센스 (EPL).

인공물입니다 아파치 라이센스 LGPLV3 제품의 버전 2.1 기준으로 라이센스가 부여됩니다.

당신은 또한 고려하고 싶을 수도 있습니다 Archiva, 비교를 위해. Apache 2.0 라이센스입니다.

나는 Nexus 사용이 증가하고있는 반면 인공적 사용은 일반적인 상태로 유지되고 있음을 알 수 있습니다.

enter image description here

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

행렬 비교도 있습니다 http://docs.codehaus.org/display/mavenuser/maven+repository+ Manager+Feature+ Matrix

인공물과 넥서스는 다소 유사한 기능 세트를 가지고 있지만 Artifactory의 LDAP 지원은 Nexus보다 더 매력적입니다. Nexus는 LDAP 지원이 있지만 유료 버전으로도 :-(

흠 ... 인공물에 대한 나의 경험은 끔찍합니다 ...하지만 나는 상대적으로 초보자이므로 소금 한 덩어리로 가져 가십시오. 내 전반적인 불만은 최근 인공물에 업로드 된 JAR 파일이 몇 시간 동안처럼 바로 색인화되지 않는 것 같으며 강제를 강요하는 좋은 방법이없는 것 같습니다. 나는 그들이 일해야했던 것처럼 보이는 다양한 것들을 시도했지만 그렇지 않았습니다. M2Eclipse와 협력하여 Ant에서 변환하는 프로젝트에 종속성을 추가했습니다. 인공물에 방금 추가 한 항아리를 추가하려고 할 때 선택기에서 선택으로 나타날 것으로 기대하지만 그렇지 않습니다.

동료는 나에게 넥서스를 설치했다고 말했지만 지금까지 그들은 그것을 좋아하지만 ... 나는 아직 그것을 보증 할 수 없다. 나는 그것을 찾을 수있는 즉시 Linux 상자에 그것을 설치하려고합니다.

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