2013-05-10 26 views
6

Trong khi điều tra các công cụ CI, tôi thấy rằng nhiều cài đặt của CI cũng tích hợp với các kho lưu trữ giả như SonaType Nexus và JFrog Artifactory.Điểm của Artifactory hoặc Nexus là gì và tôi có thể sử dụng chúng như thế nào?

Những công cụ này được tích hợp cao với Maven. Chúng tôi không sử dụng Maven, thậm chí chúng tôi cũng không biên dịch Java. Chúng tôi biên dịch C++ bằng Qt/qmake/make, và build này hoạt động thực sự tốt cho chúng ta. Chúng tôi vẫn đang nghiên cứu các công cụ CI.

Điểm sử dụng kho lưu trữ Artifact là gì?

Việc lưu trữ vào Nexus hoặc Artifactory (hoặc Archiva) có phải là một bước trong chuỗi tạo chuỗi của chúng tôi hay một phần của chuỗi CI hay không?

Làm cách nào để tạo các tập lệnh "make" hoặc perl/bash/batch tương tác với chúng?

+0

@Slaks, tại sao điều đó lại đúng? Họ đang đạt được gì cho các nhà phát triển java? – macetw

+1

@SLaks Đó là poppycock. Trình quản lý kho nhị phân là tốt cho tất cả các nhà phát triển sản xuất hoặc tiêu thụ các tệp nhị phân; là JAR, WAR, Debs, RPM, DLL, v.v. – noamt

+0

Bạn có thể tìm thấy liên kết này hữu ích: http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix – sorin

Trả lời

9

Kho lưu trữ tệp có nhiều mục đích. Mục đích chính là để có một bản sao của maven trung tâm (hoặc bất kỳ repo maven khác) để có thời gian tải về nhanh hơn và bạn có thể sử dụng maven ngay cả khi internet là xuống. Vì bạn không sử dụng maven, điều này không liên quan đến bạn.

Mục đích thứ hai là lưu trữ tệp trong đó bạn muốn sử dụng dưới dạng phụ thuộc nhưng bạn không thể tải xuống tự do từ internet. Vì vậy, bạn mua chúng hoặc lấy chúng từ các nhà cung cấp của bạn và đặt chúng trong repo của bạn. Điều này cũng áp dụng nhiều hơn cho người dùng maven và có cơ chế phụ thuộc.

Mục đích quan trọng thứ ba là có cách thức trung tâm là bạn có thể lưu trữ bản phát hành của mình. Vì vậy, nếu bạn xây dựng một bản phát hành v1.0, bạn có thể tải nó lên một kho lưu trữ như vậy và với cách đặt tên sạch sẽ trong maven, nó dễ dàng biết cách tìm v1.0 và sử dụng nó với tất cả các công cụ khác. Vì vậy, bạn có thể viết một kịch bản mà tải bản phát hành của bạn với wget và cài đặt nó trên một máy chủ.

Hầu hết thời gian các bản repos này đều có cách thức dàn dựng. Vì vậy, bạn có thể lưu trữ v1.0 trong repo trong dàn dựng. Một người nào đó làm bài kiểm tra và khi phạt tiền, anh ta quảng cáo nó cho repo phát hành là mọi người đều có thể tìm và sử dụng nó.

Đơn giản của nó để tích hợp chúng với các dự án Maven và chúng rất nhiều các công cụ xây dựng khác có khả năng dễ dàng kết nối với nó như ant ivy, nho groovy và vân vân. Bởi vì lược đồ đặt tên không có giới hạn mà bạn sử dụng bash hoặc perl để tải xuống/tải lên các tệp từ nó. Vì vậy, nếu bạn có bản phát hành hoặc tập tin cần được chia sẻ giữa các dự án và không có giải pháp tốt cho nó, kho lưu trữ đồ nghệ thuật có thể là điểm khởi đầu tốt để xem cách thức hoạt động của nó.

+1

Cả hai sản phẩm và Nexus hỗ trợ các tệp nhị phân Java dưới dạng tệp nhị phân .NET cũng như các Debs và RPM – noamt

+0

Tôi thực sự không đồng ý với xác nhận quyền sở hữu "Nhưng chúng được thiết kế để hoạt động tốt nhất với các dự án Maven và nhu cầu của các phụ thuộc Maven". Trong khi điều này là đúng đối với Nexus, Artifactory thực sự xây dựng công cụ và công nghệ bất khả tri, và hoạt động tốt với hầu hết các công cụ xây dựng và xây dựng máy chủ bằng cách cho phép người dùng kiểm soát bố cục các tạo phẩm. Nó cũng có các tiện ích tích hợp sẵn cho Gradle, Ivy, P2, .NET, RPM, v.v. – JBaruch

+0

Tôi đã thay đổi văn bản một chút để làm rõ hơn rằng bạn có thể sử dụng chúng với hầu hết mọi thứ và rất nhiều công cụ đã tích hợp kết nối với repo giả tạo. Clame được dựa trên thực tế là hầu hết các công cụ không đọc settings.xml của maven và cần một tập tin cài đặt đặc biệt để kết nối với repo của bạn.Tuy nhiên điều này là không liên quan gây ra maven không được sử dụng ở tất cả trong câu hỏi và cho bash/perl cấu hình phải thực hiện anyway. Vì vậy, tôi đã xóa nó. – mszalbach

Các vấn đề liên quan