Nếu bạn chuyển sang Apache Ivy cho quản lý phụ thuộc của bạn, bạn có thể có một kích hoạt, bất cứ khi nào bạn xuất bản một phiên bản mới của B (sử dụng Jenkins Ivy Plugin), giả sử rằng A là tùy thuộc vào latest.integration
(hoặc tương tự) phiên bản B.
Điều này sẽ không ngăn chặn A xây dựng dựa trên phiên bản cũ của B, nhưng ít nhất nó sẽ tự động xây dựng lại khi B kết thúc.
Ngoài ra, hãy xem xét các thiết lập lên post receive hooks-trigger Jenkins, và thêm một quiet period đến A. Sau đó, khi bạn đẩy những thay đổi đến A và B, cả A và B sẽ được kích hoạt ngay lập tức, nhưng A sẽ chờ đợi một thời gian ngắn trước khi xây dựng. Khi giai đoạn yên tĩnh của A hết hạn, tùy chọn Block build when upstream project is building
có thể được sử dụng để buộc nó phải đợi cho đến khi B hoàn tất.
Cuối cùng, khi bạn đã sử dụng Ivy một thời gian, có thể bạn sẽ đến cùng một kết luận như nhiều người khác: bạn không muốn A tùy thuộc vào số latest.integration
của B mà là phiên bản cụ thể thay thế. Nó cho phép xây dựng xác định và đơn giản hóa việc thiết lập công việc CI (chỉ xây dựng A khi mã của nó (bao gồm phiên bản B nó phụ thuộc vào) thay đổi), nhưng bạn cần tự mình thực hiện điều đó, theo thời gian của bạn.
BTW mặc dù Ivy rất tập trung vào Java, tôi đã sử dụng nó rất thành công trên các dự án không phải java; không được cất cánh.
Nguồn
2011-11-27 20:34:36
bạn quản lý sự phụ thuộc giữa A và B như thế nào? svn: externals, Maven, Ivy, bespoke? –
@tom Cả hai dự án đều sống trong các repo git khác nhau. – atamanroman
vì vậy khi A xây dựng, làm thế nào để có được thư viện B? –