2013-01-11 30 views
6

Tôi đang suy nghĩ về một đường ống triển khai sử dụng SVN, Jenkins và Maven. Tại thời điểm này tôi đang bị mắc kẹt tại điểm mà tôi thường gọi mvn release:perform trên một bản sao làm việc.Có thể sử dụng maven-release-plugin với bản sửa đổi cụ thể không?

Khi suy nghĩ trong các đường ống triển khai, tôi muốn tạo một đường ống trong đó mọi cam kết có thể được sử dụng để phát hành một phần mềm để kiểm tra/sản xuất. Giả sử tôi có 5 bản dựng và tôi quyết định phát hành bản dựng 3 (với bản sửa đổi 3) để sản xuất. Sẽ có 2 cam kết mới cho trunk (hiện đang được sửa đổi 5).

Có thể sử dụng số maven-release-plugin để thanh toán/xây dựng/thẻ/cam kết bản phát hành tại bản sửa đổi 3 không? Khi trình phát hành maven-plugin kết thúc việc phát hành, nó thường cam kết POM đã sửa đổi thành trunk.

Tôi rất vui về bất kỳ loại thông tin hoặc lời khuyên nào ở đây, vì vậy hãy chỉ cho tôi các cuốn sách (như http://www.amazon.com/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912), bài đăng trên blog, tài liệu Jenkins ... Có thể tôi đang đi đúng hướng.

Trả lời

2

Theo mặc định, plugin phát hành tạo bản phát hành dựa trên nội dung của bản sao làm việc của bạn, nó chỉ đảm bảo rằng bạn không có bất kỳ nội dung nào không được cam kết trước khi làm như vậy. AFAIK nó không ép buộc cập nhật các nguồn, vì đó thường là công việc của hệ thống tích hợp liên tục (Jenkins trong trường hợp của bạn). Vì vậy, bất cứ điều gì được kiểm tra bởi Jenkins sẽ được phát hành.

Những gì bạn đang cố gắng làm âm thanh giống như thay đổi cấu hình ở phía Jenkins, chỉ hướng đến bản sửa đổi phù hợp.

Mặt khác, nếu các tệp POM được sửa đổi như một phần của bản phát hành, nhưng đã được thay đổi trong SVN trong thời gian chờ đợi, bạn sẽ gặp phải xung đột khi Maven muốn kiểm tra các tệp POM đã sửa đổi. Đó là một tình huống có thể xảy ra, tùy thuộc vào cách bạn muốn đi cùng với bản phát hành.

Dựa trên điều này, có thể có ý nghĩa hơn khi luôn tạo chi nhánh trước khi thực hiện bản phát hành. Vì vậy, bạn sẽ tạo một chi nhánh dựa trên bản sửa đổi 3 và sau đó tạo bản phát hành của bạn trong nhánh đó. Bằng cách này, bạn sẽ không gặp phải vấn đề với việc cam kết tài nguyên đã thay đổi trong các bản sửa đổi gần đây.

Tạo chi nhánh và kiểm tra xem có thể có thể được tự động thông qua Jenkins và Maven không.

+0

Làm cách nào chúng tôi có thể tự động hóa quá trình phát hành trong jenkins.Vui lòng xem qua http://stackoverflow.com/questions/18778986/how-to-automate-a-job-in-jenkins này –

1

Theo như tôi đã thử nghiệm, điều đó là không thể.

Một cách rõ ràng hơn, như nwinler đã nói, khi bạn nhả, maven cố gắng cam kết sửa đổi pom. Nhưng, nếu đó là bản sửa đổi cũ hơn phiên bản hiện tại, SVN sẽ khiếu nại rằng các nguồn của bạn không cập nhật. Vì vậy, nó sẽ không hoạt động. ... theo như tôi biết.

Bạn có thể đọc tài liệu về xây dựng quảng cáo. Tôi không tìm thấy bất kỳ một rõ ràng, đủ để được chỉ ra (trong vài phút của các văn bản của tin nhắn này).

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