Maven Repo에 Nexus 또는 Artifactory를 사용해야합니까?
대규모 빌드 프로세스 (> 100 개 모듈)에 Maven을 사용하고 있습니다. 외부 종속성을 소스 제어에 저장하고이를 사용하여 로컬 저장소를 업데이트했습니다.
그러나 모든 타사를 사전에 다운로드 할 필요가 없도록 중앙에 캐시 할 수있는 로컬 리포지토리로 전환 할 준비가되었지만 여전히 로컬 리포지토리를 가져올 수 있습니다. 또한 야간 빌드에서 내부 빌드 아티팩트를 공개하여 개발자가 세계를 만들 필요가 없도록합니다.
우리는 Nexus와 Artifactory를 고려하고 있습니다. 다른 것을 선호하는 이유는 무엇입니까? 우리가 고려해야 할 다른 사람들이 있습니까?
Artifactory는 모르지만 Nexus를 사용해야하는 이유는 다음과 같습니다.
- 죽은 간단한 설치 (및 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로 더 이상 사실이 아니다 다른 빌드 도구에 대한 훨씬 더 큰 지원을 편집의 끝
Artifactory는 멋진 Hudson, TeamCity 및 Bamboo 통합 및 Gradle / Ivy 지원을 제공합니다. 따라서 Nexus는 Sonatype "comfort zone"(Maven, m2eclipse)에서 벗어나면 아무 것도 제공하지 않지만 Artifactory는 모든 주요 빌드 도구를 수용하고 협력합니다.
실제로 " mvn deploy
"가 아니라 작업이 완료되었을 때 Hudson에서 빌드 아티팩트를 배치 할 수 있다는 것은 큰 차이입니다. 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 서버에서 모든 종류의 바이너리에 대한 일반적인 "바이너리 저장소"가되었습니다.
Artifactory는 파일 시스템 및 데이터베이스 스토리지 백엔드를 모두 지원 합니다 . 저장소는 체크섬 기반이며 동일한 바이너리는 저장소에 몇 번 표시 되든 관계없이 한 번만 저장되므로 Artifactory는 저장소 방식이 더 효율적입니다. 이 아키텍처로 인해 이동 및 복사도 매우 저렴합니다 (Nexus에는 이동 / 복사를위한 REST가 없습니다. 파일 시스템에서 항목을 이동 한 다음 리포지토리에서 수정 조치를 실행하여 컨텐츠가 변경되었음을 알려야합니다).
또 다른 중요한 차이점은 Artifactory는 배포 된 아티팩트, 해결 된 종속성 및 빌드 실행과 관련된 환경 데이터에 대한 정보를 캡처하기 위해 Hudson 및 TeamCity와 고유하게 통합되어 전체 빌드 추적 성을 제공한다는 것입니다.
Artifactory는 아티팩트를 데이터베이스에 저장하므로 문제가 발생하면 모든 아티팩트가 사라집니다. Nexus는 귀중한 아티팩트에 플랫 파일을 사용하므로 모두 유실되는 것에 대해 걱정할 필요가 없습니다.
스테이징 저장소, 아티팩트 프로모션, NuGet 등의 "프로"기능이 필요한 경우 웹 사이트에 표시되는 다양한 가격 모델을 고려해야합니다.
요약해서 말하자면:
- 아티 팩토리 프로
- 당신 은 서버 당 지불
- 연장 된 서비스 시간에 대해 더 많은 비용을 지불 할 수 있습니다
- Nexus Pro
- 좌석 당 지불하는 금액 , 즉 아티팩트를 다운로드하는 개발자 수
- 지원 서비스는 월-금 0800-2000 동부 표준시입니다.
사용자 수에 관계없이 Nexus Pro는 Artifactory의 연간 $ 7,450 "Silver Value Pack"에 해당하는 지원 서비스를 제공합니다.
연간 $ 7,450는 약 67 개의 Nexus Pro 시트 (1-50 @ $ 108, 나머지 @ $ 120)를 구매합니다.
가격과 지원만으로도 Nexus Pro는 67 명의 사용자가 될 때까지 의미가 있으며,이 시점에서 Artifactory는 더 저렴한 옵션이됩니다.
사내에서 모든 지원을하고 있다면; 그러나이 마법 포인트는 약 23 명의 사용자입니다 (아티 팩토리의 가장 기본적인 지원 서비스는 $ 2,750 / 년).
Artifactory 2와 Nexus 1.3에 대해 몇 가지 연구를했습니다. 내가 찾은 주요 차이점을 여기에 나열합니다.
- Artifactory stores metadata and optionally files in DB, Nexus writes directly to file system. There are pros. and cons. for each approach. DB supports transactions, while in FS stored files can be accessed directly.
- Artifactory has higher system requirements especially for disk space.
- Artifactory has LDAP support, while Nexus has it only in paid version. On the other hand free LDAP plugin for Nexus is available on Google code.
The most complete comparison: http://binary-repositories-comparison.github.io/
You should use Artifactory Its latest version was a real jump You can backup incrementally your repositories , which means you can have all your artifacts saved and maintain Its has a easy to use web ui and is really easy to set up i enjoyed it a lot check out its new version 2.0
From a learners point of view I note some specific differences between the two.
- Sonatype .war deployment is not supported on Jboss application server at the time, although it does run under Tomcat.
- Sonatype does not offer me an Amazon Machine Image (AMI), at present, that I could quickly stand up and test.
- An Artifactory AMI is provided by Bitnami and takes a only a few minutes to stand up and a few more minutes to configure, maybe several tens of minutes dependant upon what you're trying to achieve.
- Artifactory offer a SaaS version of Artifactory in the cloud so you can focus on getting things done rather than infrastructure.
- I've no experience with Nexus but I've found Artifactory very intuitive and easy to configure, at least initially.
- Added - I do note that the Artifactory User Guide, which may be OK for a seasoned pro, is a bit light on for some in depth explanations. For instance, starting out, one unzips and then addes a Repository, say RedHat's Jboss EAP Enterprise Repo. All goes fine but then when I tried to view the artifacts that were imported Artifactory reports zero artifacts? No errors or warnings so I'm now looking for an explanation. Is this normal or not normal? A simple explanation in the doco can quickly point one in the right direction. Being a good contributor I'm adding these comments to the project for the benefit of other starters.
All politics/religion aside, licensing makes a difference for some organizations.
Nexus is
GPL
now
AGPLv3
and now Eclipse Public License (EPL).
Artifactory is
Apache licensed
LGPLv3 licensed as of version 2.1 of the product.
You may also want to consider Archiva, just for comparison's sake. It's Apache 2.0 licensed.
I see that Nexus usage is growing, while Artifcatory usage is generaly staying flat.
Picture is taken from here http://blog.sonatype.com/2014/11/42000-nexus-repository-managers-and-growing/
There is also matrix-comparison http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix
Both Artifactory and Nexus have more or less similar feature set but Artifactory's LDAP support makes it more attractive over Nexus. Though Nexus also have LDAP support but in paid version :-(
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.
참고URL : https://stackoverflow.com/questions/364775/should-we-use-nexus-or-artifactory-for-a-maven-repo
'IT박스' 카테고리의 다른 글
Git / GitHub를 사용하여 파일 삭제 (0) | 2020.07.21 |
---|---|
JavaScript에서 null 또는 undefined는 언제 사용됩니까? (0) | 2020.07.21 |
Chrome : 백그라운드 탭에서 시간 초과 / 간격이 일시 중지 되었습니까? (0) | 2020.07.20 |
3 개의 주요 C ++ 컴파일러에서 프로그램이 다르게 컴파일됩니다. (0) | 2020.07.20 |
TPL Task 객체에서 Dispose ()를 호출하지 않는 것이 허용됩니까? (0) | 2020.07.20 |