Có ai đã thử tính năng đó và có một số phản hồi không? Hoặc có ai biết một số mẫu hữu ích để tra cứu không?Kinh nghiệm với Hudson - Dự án xây dựng ma trận
Trả lời
Tôi đã thử tính năng này một vài tháng trước, nhưng tôi không sử dụng nó nữa (chỉ vì tôi không cần nó, không phải vì nó không phải là một tính năng tốt).
Về cơ bản, bạn xác định n Trục, mỗi trục là thuộc tính có nhiều giá trị. Chúng ta hãy đi với một ví dụ: bạn xác định trục "JDK", với giá trị có thể "1,4", "1,5", "1,6" và bạn xác định một thuộc tính "cơ sở dữ liệu" khác, nơi các giá trị có thể là "oracle", "mysql".
Như vậy, Hudson sẽ ra mắt bạn build 6 lần:
- với JDK 1.4, với cơ sở dữ liệu tài sản = oracle (tức là JVM được đưa ra với -Ddatabase = oracle)
- với JDK 1.5, với cơ sở dữ liệu tài sản = oracle
- với JDK 1.6, với cơ sở dữ liệu tài sản = oracle
- với JDK 1.4, với cơ sở dữ liệu tài sản = mysql
- với JDK 1.5, với cơ sở dữ liệu tài sản = mysql
- với JDK 1.6, với cơ sở dữ liệu tài sản = mysql
Sau đó, khi mọi thứ kết thúc, bạn sẽ có thể nhìn thấy kết quả cho mỗi lần lặp.
Tính năng này có thể thực sự hữu ích khi bạn cần thử nghiệm ứng dụng của mình trong một số môi trường (trong ví dụ của tôi, với các phiên bản JDK hoặc cơ sở dữ liệu khác nhau).
Lưu ý rằng ngoại trừ trục JDK, bạn phải tự quản lý thuộc tính được cung cấp dưới dạng mục nhập của Hudson. Trong ví dụ của tôi, ứng dụng phải tính đến thuộc tính "cơ sở dữ liệu". Cuối cùng, một ý tưởng tốt là sử dụng thuộc tính này để kích hoạt một cấu hình cụ thể trong cấu hình Maven2, nếu bạn dự án bị quấy rối (xem here để biết thêm chi tiết về điều đó).
Tôi hy vọng lời giải thích của tôi là rõ ràng đủ :)
Matrix xây dựng có một số vấn đề:
- Nói chung không tương thích với các plugin - họ đang nhận được tốt hơn, nhưng bạn cần phải được giữ rất nhiều lên cho đến nay.
- Hiện vật - khó khăn hơn nhiều để tháo ra - URls hơi khó xử hơn một chút, tìm chúng trên FS (mà bạn nên tránh dù sao đi nữa) bây giờ là một cơn ác mộng.
Điều đáng tiếc là vì khái niệm này rất tốt và rất tiện dụng khi nó hoạt động.
Sửa
- Không có khả năng để bắt đầu điểm duy nhất.
Cách thông thường của chúng tôi là tạo các tham số được thiết lập để chạy đồng thời - đi kèm với các vấn đề của riêng nó, nhưng tiết kiệm cho chúng tôi nhiều công việc với cùng mã và các hằng số khác nhau.
Bạn có đề xuất nào tốt hơn không? Tôi đang xem xét việc sử dụng ma trận để cắt bộ unittest của chúng tôi thành một số công việc giống hệt nhau mà mỗi một tập hợp con khác nhau của bộ (để tăng tốc chu kỳ kiểm tra của chúng tôi từ 40 phút tới <5 phút) của chúng tôi – PerilousApricot
Chúng tôi thực sự sử dụng mã trong các bước xây dựng để bắt đầu công việc được tham số hóa - do đó, công việc "kicker" hoặc "scheduler" của cha mẹ, bắt đầu công việc hạ lưu. Chúng ta sử dụng một tham số nguyên nhân để liên kết chúng trở lại, và các tham số guid để tìm các công việc một lần trong hàng đợi để công việc cha mẹ có thể hiển thị tất cả các công việc con mà nó đã bắt đầu. Đây là - một công việc duy nhất được tham số hóa và công cụ tạo chế độ xem + gốc khác có thể được sử dụng để xem chúng. Chúng tôi sử dụng tính năng chạy đồng thời cho phép. –
- 1. Dự án thử nghiệm đơn vị không xây dựng từ máy chủ xây dựng
- 2. xây dựng một dự án
- 3. Xây dựng song song ma trận khoảng cách
- 4. Sử dụng Hudson để xây dựng gói RPM
- 5. Làm thế nào để loại bỏ các mục unconfigured vô dụng trong xây dựng ma trận của Jenkins/Hudson
- 6. Ant/Ivy để xây dựng dự án
- 7. Eclipse: Không thể xây dựng dự án
- 8. Xây dựng dự án MSVC với cmake và dòng lệnh
- 9. Ant xây dựng dự án Android với phụ thuộc lib
- 10. Không thể xây dựng dự án, vấn đề với gradle?
- 11. xây dựng dự án ca cao với maven
- 12. Xây dựng một Dự án Android với Ant/Ivy
- 13. Xây dựng các dự án .NET 4 với Nant
- 14. Đội xây dựng với nhiều dự án nhóm
- 15. Nói với AppleScript để xây dựng XCode Dự án
- 16. Tự động xây dựng dự án Delphi 2010 với MSBuild
- 17. Xây dựng dự án Unity với Jenkins không thành công
- 18. Triển khai dự án PHP với Hudson/Jenkins
- 19. dự án đa Gradle xây dựng với các dự án có sản phẩm nào
- 20. Xây dựng một dự án với Ant bao gồm ActionbarSherlock như một dự án thư viện
- 21. Triggering dự án thượng nguồn xây dựng trước khi dự án hạ
- 22. VS2010: Loại trừ một dự án khỏi xây dựng
- 23. Xây dựng ma trận hạt nhân svm tùy chỉnh với opencv
- 24. Visual Studio 2010 và TFS 2008: Xây dựng các dự án thử nghiệm đơn vị
- 25. Xây dựng dự án Maven mà không cần chạy thử nghiệm đơn vị
- 26. Ma trận của Ma trận trong Perl
- 27. Làm thế nào để xây dựng dự án PyQT?
- 28. Jenkins có thể xây dựng các dự án Eclipse không?
- 29. Thêm dự án thư viện android vào dự án android ngăn Ant xây dựng
- 30. Dự án Web Java không xây dựng chính xác
Làm cách nào để bạn truy cập các thuộc tính này cho các dự án không phải Java? Khi biến môi trường? –
@Sridhar Thông thường, các thuộc tính được thiết lập bởi Hudson là các biến môi trường cho bản dựng hiện tại. – romaintaz
OK, câu hỏi này đã hết hạn nhưng tôi gặp khó khăn khi thiết lập dự án ma trận - bất kỳ gợi ý nào về cách định cấu hình một câu hỏi? :) –