2008-11-17 46 views
5

C++ Tôi muốn thiết lập một máy chủ xây dựng cho không được quản lý C++ được phát triển trong Visual Studio 2005. Việc xây dựng máy chủ sẽ có thể làm như sau:giải pháp xây dựng cho

  • Giám sát một kho lưu trữ Subversion cho thay đổi mã và sắp xếp một build
  • đang Thanh toán từ Subversion và chạy đơn vị kiểm tra
  • Cung cấp một số loại báo cáo về xây dựng thành công và thay đổi từ xây dựng trước

tôi đã bước đầu được lookin g lúc sử dụng CruiseControl với Ant. Có giải pháp nào tốt hơn không? Có lẽ CruiseControl.Net, và NAnt?

Trả lời

0

Tôi vừa mới bắt đầu sử dụng Visual xây dựng chuyên nghiệp và rất ấn tượng, Bạn có thể tải về dùng thử 30 ngày đầy đủ tính năng từ đây:

http://www.kinook.com/VBP/

SVN được hỗ trợ đầy đủ quá.

0

Chúng tôi sử dụng FinalBuilder để xây dựng các dự án Visual Studio 2005 bao gồm đóng gói exes và dll cuối cùng bằng InstallShield và đưa chúng lên máy chủ dùng chung.

Chúng tôi cũng telnet out (từ FinalBuilder) cho một số nền tảng khác (Unix/Linux/OpenVMS) và bắt đầu xây dựng từ xa bằng cách chạy makefiles ở đó.

Chúng tôi không sử dụng xây dựng liên tục, nhưng có một máy chủ FinalBuilder xử lý và đi kèm với giấy phép FinalBuilder Professional.

Chúng tôi rất hài lòng với FinalBuilder, thật dễ dàng để bắt kịp tốc độ và đủ mạnh để giải quyết hầu hết các sự cố.

2

NAnt mất khá nhiều công sức để xây dựng C++ một cách hiệu quả. Nó thực sự là một hệ thống xây dựng .NET thông qua và thông qua. Chúng tôi đang xây dựng tiêu đề của chúng tôi cho bốn nền tảng C++ cộng với một bộ công cụ .NET và phải mất một lúc để bẻ cong NAnt theo nhu cầu của chúng tôi. Ví dụ, phân tích phụ thuộc C++ của NAnt bị phá vỡ đến nỗi chúng ta phải tự viết. Và nó có rất nhiều vấn đề về độ hoàn hảo mà chúng tôi phải bỏ qua để khắc phục.

Vì vậy, đừng nhảy với cả hai chân về điều này. Làm một số thử nghiệm sơ bộ để chắc chắn rằng nó thực sự có thể làm những gì bạn muốn và có được một cảm giác cho bao nhiêu bạn sẽ phải sửa đổi nó cho C + +.

Ngoài ra, chúng tôi đang sử dụng CruiseControl.NET cũng cho một số công cụ NUnit chúng tôi đã tích hợp vào một trong những công cụ thúc đẩy trò chơi mà chúng tôi đang phát triển. Rất hạnh phúc với điều này, nó đã được não-chết dễ dàng để thiết lập. Big ngón tay cái lên đây.

Tại buổi biểu diễn trước, tôi đã sử dụng Trình tạo cuối cùng trong kịch bản chính xác mà bạn mô tả - trên máy chủ xây dựng. Xây dựng địa phương đã được thực hiện bằng cách sử dụng Visual Studio. Đó là một sản phẩm khá tuyệt vời mà tôi nghiêm túc xem xét nếu bạn có một ít tiền để chi tiêu. Chúng tôi không có gì ngoài kết quả tốt từ nó.

Tại công ty hiện tại của tôi, chúng tôi đã đi với NAnt bởi vì chúng tôi không muốn mua FB cho mọi kỹ sư trong nhóm. Chúng tôi cũng không thích cách FB đóng nguồn. Vì vậy, chúng tôi 100% Nant và thích nó. Chỉ cần mất một thời gian để đập nó thành hình dạng!

+0

Chúng tôi đã sử dụng NAnt khá thành công như một công cụ xây dựng nhưng * không * làm bộ phân tích phụ thuộc - như bạn đã nói NAnt không hoạt động tốt trong lĩnh vực đó. Chúng tôi chỉ đơn giản sử dụng nó để gọi ra msdev và bjam. – MattyT

0

Chúng tôi sử dụng CruiseControl.Net và NAnt (và Subversion) và chúng tôi rất hài lòng với kết quả.

0

Dự án Visual Studio 2005 hoàn toàn có khả năng được chạy từ dòng lệnh! Chỉ cần làm

devenv.com whatever.sln /build 'Release|Win32' /project whatever 

(thay thế whatever với tên dự án của bạn và Release|Win32 với cấu hình và nền tảng mà bạn cần). Điều này có thể được điều hành bởi TravellerControl hoặc Jenkins hoặc bất cứ điều gì.

0

Trong Visual Studio 2010, Microsoft cuối cùng đã nâng cấp định dạng tệp dự án Visual C++ (.vcproj) thành định dạng bản sao NANT dựa trên XML của nó MSBuild, bây giờ có tên .vcxproj. Điều này có nghĩa là các dự án C++ sẽ biên dịch mà không cần nỗ lực nhiều bằng cách sử dụng tác vụ.

Nếu bạn có thể thấy trước rằng bạn sẽ chỉ có một nhóm nhỏ và một số lượng giới hạn các bản dựng, tôi khuyên bạn nên TeamCity (http://www.jetbrains.com/teamcity/) bằng NAnt. TeamCity là một máy chủ CI dựa trên Java (dễ triển khai hơn trên máy chủ xây dựng Linux) hỗ trợ các tác nhân xây dựng riêng biệt (vì vậy bạn có thể có một số máy ảo Windows hoặc hộp chuyên dụng chạy các bản dựng của bạn).

Hỗ trợ của TeamCity đối với các bản dựng MSBuild, NAnt và Ant là tuyệt vời và nó có giao diện dựa trên AJAX rất đẹp, là niềm vui để sử dụng và cho phép bạn thiết lập và định cấu hình các dự án từ trình duyệt của bạn. Nếu bạn vượt qua ngưỡng 20 dự án của phiên bản miễn phí, nó sẽ trở nên vô cùng đắt tiền, tuy nhiên.

Tùy chọn khác tôi có thể đề xuất sẽ là Jenkins với NAnt, Ant, MSBuild hoặc một trong nhiều hệ thống xây dựng khác mà Jenkins có thể hỗ trợ. Jenkins là mã nguồn mở và sẽ xử lý các dự án không giới hạn, như TeamCity nó có thể chạy trên một máy chủ trong khi gửi các bản xây dựng để tách các tác nhân xây dựng và nó có các plugin cho nhiều công cụ C++ (nghĩ phân tích tĩnh, kiểm thử đơn vị và đóng gói).

Giao diện web của Jenkins không hoàn toàn tiện lợi và beauftiful như TeamCity, nhưng nó được sử dụng rộng rãi và có các plugin cho hầu hết mọi thứ.

2

Vì không có ai có đề cập, Jenkins là một CI tốt và ngày càng trở nên phổ biến hơn (là miễn phí không làm hại hoặc):

http://jenkins-ci.org/

Dễ dàng cài đặt, sử dụng và giám sát và tích hợp độc đáo với rất nhiều thứ (SVN, GIT vv). Cũng rất tùy biến. Mất 5 phút để thiết lập và chạy.

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