Chúng ta nên sử dụng Nexus hay Artifactory cho Maven Repo?


119

Chúng tôi đang sử dụng Maven cho một quy trình xây dựng lớn (> 100 mô-đun). Chúng tôi đã lưu trữ các phụ thuộc bên ngoài của mình trong kiểm soát nguồn và sử dụng điều đó để cập nhật kho lưu trữ cục bộ.

Tuy nhiên, chúng tôi đã sẵn sàng chuyển sang một kho lưu trữ cục bộ có thể lưu vào bộ đệm trung tâm để chúng tôi không phải chủ động tải xuống tất cả các bên thứ 3 (nhưng chúng tôi vẫn có thể có một kho lưu trữ cục bộ để lấy từ đó). Ngoài ra, chúng tôi muốn xuất bản các tạo tác xây dựng nội bộ của mình từ quá trình xây dựng hàng đêm để các nhà phát triển không phải xây dựng thế giới.

Chúng tôi đang xem xét Nexus và Artifactory. Lý do để thích cái này hơn cái kia là gì? Có những người khác mà chúng ta nên xem xét?


2
Liên kết của bạn không phải là quá khách quan, đây là phản ứng khác bên blogs.jfrog.org/2009/01/contrasting-artifactory-and-nexus.html
user58773

Tôi nghĩ bạn nên xem xét một máy chủ http thuần túy như Apache hoặc nginx. Chúng là "Công nghệ nhàm chán" ( mcfunley.com/choose-boring-technology ).
Johan Walles

5
@JohanWalles: giống "Công nghệ giảm năng suất và bất tiện" hơn trong ngữ cảnh này.
Priidu Neemre

Câu trả lời:


74

Tôi không biết về Artifactory nhưng đây là lý do tôi sử dụng Nexus:

  • Đã chết cài đặt đơn giản (và kể từ 1.2, nâng cấp đơn giản cũng chết)
  • Giao diện người dùng web rất tốt
  • Dễ bảo trì, hầu như không có chi phí quản lý
  • Cung cấp cho bạn nguồn cấp dữ liệu RSS của các phần mềm bị hỏng và lỗi được cài đặt gần đây
  • Nó có thể nhóm một số kho lưu trữ để bạn có thể sao chép một số nguồn nhưng chỉ cần một hoặc hai mục nhập trong cài đặt của bạn. Xml
  • Triển khai từ Maven hoạt động hiệu quả (không cần hack WebDAV, v.v.).
  • nó miễn phí
  • Bạn có thể chuyển hướng các đường dẫn truy cập (tức là một số pom.xml bị hỏng yêu cầu "abc" từ "xxx"). Thay vì vá POM, bạn có thể sửa lỗi trong Nexus và chuyển hướng yêu cầu đến nơi thực sự là hiện vật.

3
Nexus có giao diện người dùng web tuyệt vời để tạo các công việc được lên lịch thường xuyên có thể xóa SNAPSHOTS. Artifactory không có cái này (chưa).
HDave

118

Tôi chắc rằng nếu bạn chỉ nói về việc lưu trữ các tệp nhị phân từ " mvn deploy" thì cả hai đều sẽ ổn.

Chúng tôi sử dụng Artifactory rất rộng rãi với tất cả các bản nâng cấp trong suốt quá trình. Rất nhiều dự án, nhiều ảnh chụp nhanh được triển khai và các đại diện bên ngoài được ủy quyền. Không phải là một vấn đề duy nhất. Tôi thấy thật khó để giải thích cách người khác gặp sự cố với DB của nó, lập chỉ mục hoặc bất kỳ thứ gì khác. Không có gì như vậy từng xảy ra với chúng tôi. Ngoài ra, Artifactory cho phép lưu trữ dữ liệu trên đĩa và chỉ sử dụng DB để lưu trữ siêu dữ liệu, nó khá linh hoạt ( xem thêm tại đây ).

Điều làm cho các ứng dụng đó trở nên rất khác biệt là cách tiếp cận của họ hướng tới sự tích hợp với các công cụ và công nghệ xây dựng khác. Nexus và Sonatype bị khóa khá nhiều trên Maven và m2eclipse. Họ bỏ qua bất cứ điều gì khác và chỉ gần đây bắt đầu làm việc trên tích hợp Hudson độc quyền của riêng họ (xem hội thảo trên web Maven 3 của họ ). CHỈNH SỬA: Điều này không còn đúng nữa kể từ năm 2017 Nexus hỗ trợ nhiều hơn cho các công cụ xây dựng khác Kết thúc chỉnh sửa

Artifactory cung cấp một tuyệt vời Hudson, TeamCity và hội nhập Bamboo , và Gradle / Ivy hỗ trợ. Vì vậy, mặc dù Nexus không mang lại gì cho bạn sau khi bạn bước ra khỏi "vùng an toàn" của Sonatype (Maven, m2eclipse), thì Artifactory lại tiếp nhận và cộng tác với tất cả các công cụ xây dựng chính.

Trên thực tế, có thể triển khai xây dựng tạo tác từ Hudson, khi công việc kết thúc, chứ không phải bởi " mvn deploy" là một sự khác biệt rất lớn: plugin Artifactory Hudson thực hiện triển khai giống như nguyên tử của tất cả các tạo tác cùng một lúc , chỉ khi công việc xây dựng kết thúc thành công. " mvn deploy" chạy sau mỗi mô-đun và có thể triển khai một phần bộ tạo tác nếu công việc xây dựng không thành công giữa chừng. Triển khai từ Maven khi hoàn thành mô-đun chứ không phải từ một máy chủ xây dựng khi hoàn thành công việc thực sự là một điều tồi tệ để làm.

Như bạn thấy, Artifactory nghĩ "bên ngoài chiếc hộp" trong khi Nexus nghĩ "bên trong chiếc hộp" và chỉ quan tâm đến Maven và các đồ tạo tác của Maven.

Một thứ khác làm cho Artifactory dễ tiếp cận hơn là giải pháp Artifactory Online dựa trên đám mây của họ . Với khoảng 80 đô la một tháng, bạn có phiên bản Artifactory của riêng mình, không cần cung cấp bất kỳ máy chủ nào cho nó.

Artifactory có một API REST đơn giản và dễ hiểu , không biết nó hoạt động như thế nào đối với Nexus. Chỉnh sửa Nexus cũng có một API REST mà bạn cũng có thể sử dụng dễ dàng.

Tóm lại, để lưu trữ cơ bản các hiện vật Maven, tôi nghĩ cả hai đều ổn. Nhưng trong khi Nexus chỉ dừng lại ở đó là "người quản lý kho lưu trữ Maven", thì Artifactory vẫn tiếp tục trở thành "kho lưu trữ Binaries" chung cho các tệp nhị phân thuộc bất kỳ loại nào, từ bất kỳ công cụ xây dựng nào và máy chủ CI.


9
Tôi xin lỗi nhưng tôi ngửi thấy mùi FUD ở đây. Nexus chắc chắn không bị "khóa trên Maven và m2eclipse", nó tích hợp hoàn hảo với Jenkins, TeamCity và Bamboo. Nó có một API REST đơn giản và dễ hiểu; mọi tính năng của Nexus được hiển thị dưới dạng điểm cuối REST. Không đúng khi nói rằng Nexus "chỉ quan tâm đến Maven và đồ tạo tác của Maven"; nó cũng hỗ trợ .Net (NuGet), Gradle / Ivy, OSGI và có thể lưu trữ kho Yum RPM. Về mặt lưu trữ tạo tác, tar, zip, rar, par được bao gồm cùng với các loại lưu trữ java tiêu chuẩn.
RCross

25
Anh bạn, câu trả lời đó đã được đăng 4 năm trước :) Nó không phải về Maven nữa? Tốt cho nó sau đó!
Evgeny Goldin

3
@EvgenyGoldin Không làm cho bình luận của anh ấy ít liên quan hơn (ngoại trừ phần FUD ^^).
OddDev

4
Bây giờ bài đăng này đã được bảy năm tuổi và các apis REST ít nhiều bắt buộc phải có các công cụ, Nexus dường như vẫn rất thành công với điều này. Sử dụng Nexus3 có API phần còn lại về cơ bản là rpc; bạn phải tải lên một tập lệnh nhỏ để thực hiện những gì bạn muốn làm. Mặt khác, Artifactory dường như tiết lộ một API được suy nghĩ kỹ lưỡng có tài liệu tốt.
thecoshman,

27

Artifactory hỗ trợ cả phần phụ trợ lưu trữ hệ thống tệp và cơ sở dữ liệu. Lưu trữ dựa trên tổng kiểm tra và các tệp nhị phân giống hệt nhau chỉ được lưu trữ một lần, bất kể chúng xuất hiện trong repo bao nhiêu lần, điều này giúp cho Artifactory lưu trữ hiệu quả hơn. Di chuyển và sao chép cũng rất rẻ vì kiến ​​trúc này (trong Nexus không có REST để di chuyển / sao chép - bạn phải di chuyển nội dung trên hệ thống tệp, sau đó chạy các hành động sửa chữa trên repo để cho nó biết nội dung đã thay đổi).

Một điểm khác biệt quan trọng khác là Artifactory có khả năng tích hợp độc đáo với Hudson và TeamCity để nắm bắt thông tin về các tạo tác được triển khai, các dữ liệu phụ thuộc đã giải quyết và môi trường liên quan đến các lần chạy xây dựng, giúp cung cấp khả năng truy nguyên toàn bộ bản dựng.


1
Artifactory cũng hỗ trợ tính bền bỉ của S3.
Tim Ferrell

@TimFerrell, không phải là sai sự thật, nhưng với mức giá quá đắt đối với hầu hết các cửa hàng tôi thường làm việc.
Sander Verhagen

21

Artifactory lưu trữ các hiện vật trong cơ sở dữ liệu, có nghĩa là nếu có sự cố, tất cả các hiện vật của bạn sẽ biến mất. Nexus sử dụng tệp phẳng cho các hiện vật quý giá của bạn, vì vậy bạn không phải lo lắng về việc tất cả chúng bị thất lạc.


3
Đó cũng là điều đã tạo nên sự khác biệt cho chúng tôi. Tôi tưởng tượng đó chủ yếu chỉ là hoang tưởng, nhưng thật an ủi khi biết rằng sẽ dễ dàng kiểm tra hệ thống bất cứ lúc nào.
Jeremy Huiskamp

4
Chúng tôi đang có kế hoạch chuyển từ Artifactory sang Nexus vì điều này.
Kariem

2
+1 từ một nạn nhân khác của tham nhũng; Tôi đã sử dụng Archiva và Nexus kể từ đó và cả hai đều có vẻ khá chắc chắn.
SimonJ

73
Câu trả lời này đã lỗi thời. Artifactory hiện có thể được cấu hình để lưu trữ các đối tượng trên hệ thống tệp.
M. Dudley

37
Miễn là tôi đã sử dụng Artifactory, nó đã hỗ trợ hệ thống tệp cho các tạo tác thực tế. Nhưng dù sao tôi cũng sử dụng cơ sở dữ liệu vì máy chủ cơ sở dữ liệu chính của chúng tôi được sao chép và sao lưu. Tôi không thấy cách lưu trữ hệ thống tệp vốn an toàn hơn cơ sở dữ liệu. Không có gì chống lại Nexus, chỉ cố gắng làm rõ điều này.
Joshua Davis

9

Nếu bạn cần các tính năng "Pro" của một trong hai (ví dụ: kho lưu trữ theo giai đoạn, quảng cáo tạo tác, NuGet), thì bạn cần xem xét các mô hình định giá khác nhau, được hiển thị trên trang web của họ.

Tóm tắt:

  • Artifactory Pro
    • bạn trả tiền cho mỗi máy chủ
    • bạn có thể trả nhiều hơn để tăng giờ phục vụ
  • Nexus Pro
    • bạn trả tiền cho mỗi chỗ ngồi , tức là có bao nhiêu nhà phát triển tải xuống các phần mềm
    • dịch vụ hỗ trợ chỉ từ Thứ Hai-Thứ Sáu 0800-2000 ET, bất kể bạn phải trả bằng cách nào

Bất kể bạn có bao nhiêu người dùng, Nexus Pro cung cấp dịch vụ hỗ trợ rộng rãi tương đương với "Gói giá trị bạc" 7.450 đô la / năm của Artifactory.

7.450 đô la / năm sẽ mua cho bạn khoảng 67 ghế Nexus Pro (1-50 @ 108 đô la, phần còn lại @ 120 đô la).

Khi đó, chỉ tính riêng về giá và hỗ trợ, Nexus Pro có ý nghĩa cho đến khi bạn tiếp cận được 67 người dùng, lúc đó Artifactory trở thành lựa chọn rẻ hơn.

Nếu bạn đang thực hiện tất cả các hỗ trợ trong nhà; tuy nhiên, điểm kỳ diệu đó là khoảng 23 người dùng (cung cấp hỗ trợ cơ bản nhất của Artifactory là $ 2,750 / năm).


8

Tôi đã thực hiện một số nghiên cứu gần đây về Artifactory 2 và Nexus 1.3. Tôi sẽ liệt kê ở đây những điểm khác biệt chính mà tôi tìm thấy:

  • Artifactory lưu trữ siêu dữ liệu và các tệp tùy chọn trong DB, Nexus ghi trực tiếp vào hệ thống tệp. Có những ưu điểm. và khuyết điểm. cho mỗi cách tiếp cận. DB hỗ trợ các giao dịch, trong khi các tệp được lưu trữ trong FS có thể được truy cập trực tiếp.
  • Artifactory có yêu cầu hệ thống cao hơn, đặc biệt là về không gian đĩa.
  • Artifactory có hỗ trợ LDAP, trong khi Nexus chỉ có trong phiên bản trả phí. Mặt khác, plugin LDAP miễn phí cho Nexus có sẵn trên mã Google.

So sánh đầy đủ nhất: http://binary-repositories-comparison.github.io/


Trên thực tế, Artifactory bây giờ là GPL.
Brian Fox

5
Nexus OSS hiện có hỗ trợ Ldap cho một số bản phát hành.
Brian Fox

1
Hỗ trợ thỏa đáng cho các nhóm LDAP vẫn là một tính năng chuyên nghiệp: jfrog.com/confluence/display/RTF/LDAP+Groups
Steven Magana-Zook

1
Cập nhật tháng 7 năm 2015: Codehaus là chết ngay bây giờ, vì vậy ma trận di cư đến binary-repositories-comparison.github.io
JBaruch

7

Bạn nên sử dụng Artifactory Phiên bản mới nhất của nó là một bước nhảy thực sự Bạn có thể sao lưu từng bước kho lưu trữ của mình, có nghĩa là bạn có thể lưu tất cả các hiện vật của mình và duy trì. Nó có một giao diện web dễ sử dụng và rất dễ cài đặt. ra phiên bản 2.0 mới của nó


5

Từ quan điểm của người học, tôi lưu ý một số khác biệt cụ thể giữa hai phương pháp.

  1. Triển khai Sonatype .war không được hỗ trợ trên máy chủ ứng dụng Jboss vào thời điểm đó, mặc dù nó chạy dưới Tomcat.
  2. Sonatype hiện không cung cấp cho tôi Hình ảnh Máy Amazon (AMI) mà tôi có thể nhanh chóng đứng lên và kiểm tra.
  3. Một AMI Artifactory được cung cấp bởi Bitnami và chỉ mất vài phút để đứng lên và thêm vài phút để định cấu hình, có thể vài chục phút tùy thuộc vào những gì bạn đang cố gắng đạt được.
  4. Artifactory cung cấp phiên bản SaaS của Artifactory trên đám mây để bạn có thể tập trung vào việc hoàn thành công việc hơn là cơ sở hạ tầng.
  5. Tôi không có kinh nghiệm với Nexus nhưng tôi thấy Artifactory rất trực quan và dễ cấu hình, ít nhất là ban đầu.
  6. Đã thêm - Tôi lưu ý rằng Hướng dẫn sử dụng Artifactory, có thể phù hợp với một người chuyên nghiệp dày dạn, hơi sáng cho một số giải thích chuyên sâu. Ví dụ: bắt đầu, một người giải nén và sau đó thêm một Kho lưu trữ, chẳng hạn như Kho lưu trữ doanh nghiệp Jboss EAP của RedHat. Tất cả đều ổn nhưng sau đó khi tôi cố gắng xem các hiện vật được nhập khẩu Artifactory báo cáo không có hiện vật nào? Không có lỗi hoặc cảnh báo nên bây giờ tôi đang tìm lời giải thích. Điều này là bình thường hay không bình thường? Một lời giải thích đơn giản trong doco có thể nhanh chóng chỉ ra một hướng đi đúng. Là một người đóng góp tốt, tôi sẽ thêm những nhận xét này vào dự án vì lợi ích của những người mới bắt đầu khác.

3

Bỏ tất cả chính trị / tôn giáo sang một bên, việc cấp phép tạo ra sự khác biệt cho một số tổ chức.

Nexus là GPL tại AGPLv3 và bây giờ Public License Eclipse (EPL) .

Artifactory là LGPLv3 được cấp phép của Apache kể từ phiên bản 2.1 của sản phẩm.

Bạn cũng có thể muốn xem xét Archiva , chỉ để so sánh. Đó là Apache 2.0 được cấp phép.


5
Tại sao, đây là một troll. Việc Linux là GPL có ngăn cản các tổ chức sử dụng nó không? Có sự khác biệt giữa việc kết hợp một công cụ vào một chương trình và sử dụng nó.
Tim O'Brien

1
Tôi không có ý troll, nhưng tôi đánh giá cao quan điểm của bạn. Tôi đã xóa các so sánh nhất khỏi văn bản.
Zac Thompson

4
@tobrien: FWIW, một số tổ chức (bao gồm cả tổ chức của tôi) rất thận trọng về việc khi họ sử dụng phần mềm có GPL, vì sợ bị phơi bày trước pháp luật. Tôi không muốn thảo luận về sự (thiếu) khôn ngoan của chính sách như vậy - tôi nghi ngờ rằng chúng tôi sẽ hoàn toàn đồng ý. Chỉ chỉ ra rằng đối với một số người, nó quan trọng.
Zac Thompson

1
Kể từ 2.1, Artifactory dù sao cũng là LGPL.
Brian Fox,

1
@Zac @ user145026 Bạn có đang liên kết mã của mình với các thư viện Nexus không ?? Nếu không, tôi không hiểu tại sao giấy phép GPL lại là một vấn đề.
Pascal Thivent

2

Tôi thấy rằng việc sử dụng Nexus đang tăng lên trong khi việc sử dụng Artifcatory nhìn chung vẫn không thay đổi.

nhập mô tả hình ảnh ở đây

Hình ảnh được lấy từ đây http://blog.sonatype.com/2014/11/42000-nexus-repository-managers-and-growing/

Ngoài ra còn có so sánh ma trận http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix


3
1. Hình ảnh này không chính xác, vì nó chỉ dựa trên các cuộc gọi của Maven Central. Có những bản tải xuống ngoài Maven Central. 2. Codehaus là chết bây giờ, ma trận di cư đến binary-repositories-comparison.github.io
JBaruch

Đẹp. Bạn có bức tranh nào đẹp hơn không?
rofrol

Bạn có thể tìm thấy một số con số ở đây .
JBaruch

1
Thiên vị đối với Nexus, Thiên vị đối với jfrog - Tôi sẽ không tin tưởng vào bất kỳ bộ số nào.
Kyle Wiering

-2

Cả Artifactory và Nexus đều có bộ tính năng ít nhiều giống nhau nhưng hỗ trợ LDAP của Artifactory khiến nó trở nên hấp dẫn hơn Nexus. Mặc dù Nexus cũng có hỗ trợ LDAP nhưng ở phiên bản trả phí :-(


1
Có một plugin LDAP mã nguồn mở cho Nexus trên mã google.
Brian Fox,

3
Hỗ trợ LDAP hiện có trong phiên bản miễn phí của Nexus, kể từ 1.5.0
David Roussel,

-2

Hmmm ... trải nghiệm của tôi với nghệ sĩ thật tệ hại ... nhưng tôi là một người mới tương đối nên hãy coi nó như muối bỏ bể. Khiếu nại tổng thể của tôi là các tệp jar được tải lên Artifactory gần đây dường như không được lập chỉ mục ngay lập tức - như trong nhiều giờ - và dường như không có cách nào tốt để buộc nó. Tôi đã thử nhiều thứ khác nhau có vẻ như chúng đáng lẽ phải hoạt động, nhưng không. Tôi đã làm việc với m2eclipse, thêm các phụ thuộc vào một dự án mà tôi đang chuyển đổi từ kiến. Khi tôi cố gắng thêm một cái lọ mà tôi vừa mới thêm vào nghệ thuật, tôi hy vọng nó sẽ hiển thị dưới dạng một lựa chọn trong bộ chọn nhưng không.

một đồng nghiệp nói với tôi rằng họ đã cài đặt nexus và cho đến nay họ thích nó ... nhưng tôi chưa thể đảm bảo điều đó. Tôi sắp cài đặt cái đó trên hộp Linux ngay khi CNTT có thể tìm thấy cho tôi một cái.


3
Bạn đang đề cập đến các chỉ mục Nexus được tải xuống và sử dụng bởi IDE, trong trường hợp của bạn - bởi plugin m2eclipse. Các chỉ mục này được tải xuống định kỳ cho khách hàng và không có nghĩa là được sử dụng sau mỗi lần triển khai. Artifactory cho phép bạn lập lịch cập nhật chỉ mục này hoặc buộc nó. FYI, các chỉ mục được sử dụng bởi tìm kiếm Artifactory (UI / REST) ​​là khác nhau và được cập nhật ngay lập tức và nguyên tử như một phần của việc triển khai tạo tác mới. Các công cụ như IntelliJ tận dụng điều này bằng cách chạy các tìm kiếm dựa trên kho lưu trữ thay vì chỉ mục được lưu trong bộ nhớ cache cục bộ, sử dụng REST API của Artifactory.
Yoav Landman
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.