2011-08-04 34 views
8

Tôi đang sử dụng SVN làm công cụ quản lý phiên bản cho dự án của mình và đang lên kế hoạch sử dụng sonar để phân tích dự án.Tích hợp Sonar với SVN

Làm cách nào để phân tích dự án sonar chạy mỗi khi mã được kiểm tra vào SVN?

Trả lời

13

Đừng làm những thứ phức tạp như một cái móc trước cam kết! Khi người dùng thực hiện một cam kết, điều khiển không trả lại cho người dùng cho đến sau khi móc trước khi commit đã hoàn tất. Kể từ khi Sonar có để biên dịch mã của bạn, người dùng của bạn sẽ phải chờ trên tất cả các cam kết sau:

  • Kiểm tra ra mã
  • Biên dịch mã
  • Chạy tất cả các xét nghiệm và kiểm tra rằng Sonar thực hiện
  • chờ Sonar để hoàn thành báo cáo của mình và cập nhật cơ sở dữ liệu của nó

tất cả điều này sẽ mất bao lâu? 10 phút? 20 phút? 5 phút? Giả sử rằng mã của bạn nhỏ hoặc trình biên dịch của bạn rất nhanh, vì vậy chỉ mất 4 phút. Người dùng của bạn có muốn đợi 4 phút và mỗi lần họ thực hiện cam kết để bắt đầu lại công việc của họ?

Thay vào đó, hãy tạo máy chủ tạo liên tục như Jenkins. Jenkins nhanh và dễ cài đặt. Đó là một tệp * .war đơn giản. Bạn chỉ cần chạy:

$ java -jar jenkins.war 

Và bạn đã thiết lập và đang chạy. Một khi Hudson đang lên, bạn xác định một "công việc". Chỉ cần nhập thông tin được yêu cầu và lưu. Mỗi lần, một người nào đó thực hiện một cam kết trong Subversion, Hudson sẽ xây dựng trong nền.

Nơi mà tất cả những điều thú vị có được là hàng chục (và có thể hàng trăm) plugin của bên thứ ba có thể mở rộng Jenkins. Ví dụ, có một plugin Sonar sẽ chạy nhiệm vụ Sonar của bạn, cập nhật cơ sở dữ liệu của bạn và tạo ra một số báo cáo đẹp mắt.

Nếu có vấn đề, Jenkins sẽ gửi email cho người chịu trách nhiệm và toàn bộ nhóm phát triển. (Plugins cho phép Jenkins IM, Tweet, và thậm chí thay đổi một stoplight từ xanh sang đỏ). Phản hồi tức thời và kiến ​​thức công cộng này sẽ giúp các nhà phát triển của bạn thực hiện các bài kiểm tra của riêng mình trước khi thực hiện cam kết.

+0

Cảm ơn bạn rất nhiều ..... Tôi đã cài đặt DANH SÁCH THU GỌI COLLABNET, và đã chạy sonar, nhưng không tích hợp. Bạn đang nói tôi sẽ yêu cầu Hudson và jenkins, nhưng m không biết cả hai. u plz giúp tôi xây dựng một bản demo nhỏ? – samarth

+0

Jenkins và Hudson là loại tương tự. Ban đầu, đó là Hudson, nhưng người đã viết nó rời Oracle và tiếp tục dự án theo Jenkins. Hầu hết các nhóm dev bây giờ không Jenkins, nhưng Oracle vẫn hỗ trợ Hudson. Tôi dùng Jenkins. Tải xuống [Jenkins] (http://jenkins-ci.org) và thử. Nó thực sự dễ sử dụng. Jenkins _integrates_ với Sonar. Có các plugin cho Jenkins và một plugin là plugin Sonar. Về cơ bản, bạn nói với Jenkins nơi để tìm các báo cáo được tạo ra Sonar, và Jenkins làm cho tất cả chúng trông khá đẹp. Nếu bạn có Sonar làm việc, bạn đã 90% của con đường đó. –

0

Bạn có thể điều tra Hudson. Có một plugin Sonar cho nó.

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