Tôi đang cố gắng tích hợp clojure vào một bản dựng liên tục. Bất kỳ đề xuất cho một hệ thống clojure kích hoạt như Jenkins, đó là khả năng làm công việc cho tôi thông qua một plugin? Tôi đã nhìn thấy một số hướng dẫn quảng cáo, nhưng không chắc chắn nếu có một phương pháp được chấp nhận rõ ràng. Tôi nhận thấy rằng clojure được xây dựng bằng cách sử dụng CI, và vì nó là một phương ngữ java, tôi giả định có lẽ nếu không có các tùy chọn như vậy tồn tại, thì có lẽ tôi có thể bọc một clojure build như một nhiệm vụ maven/ant ....Có bất kỳ tùy chọn tích hợp liên tục Clojure mạnh mẽ nào không?
Trả lời
Bạn muốn làm tất cả các công việc trong một trong hai kiến / maven/gradle vv bởi vì bạn muốn có thể dễ dàng xây dựng dự án của bạn tại địa phương cũng như trên một hệ thống CI. Một khi bạn có thể xây dựng cục bộ với một framework xây dựng nổi tiếng, bạn chỉ cần gọi cùng một nhiệm vụ/mục tiêu trong Jenkins và siêu dễ dàng của nó tại thời điểm đó, vì Jenkins tích hợp độc đáo với hầu hết các khung công tác xây dựng như ant/maven/gradle.
Trong khi Jenkins/Hudson được sử dụng rộng rãi nhất cho các dự án Clojure, bạn có thể sử dụng bất kỳ hệ thống CI nào bạn thích.
Bản thân Clojure, tất cả các dự án contrib, và các dự án nguồn mở khác nhau đều sử dụng Maven để xây dựng các bản dựng của chúng và do đó có thể được đưa vào Hudson/Jenkins một cách tương đối dễ dàng. clojure-maven-plugin là những gì bạn đang tìm kiếm để phản ánh một thiết lập như vậy.
Bạn cũng có thể sử dụng Leiningen với Hudson/Jenkins (hoặc thực sự bất kỳ hệ thống CI nào khác) chỉ bằng cách bắn phá lein
nếu cần. Có một cách khá thông minh để thiết lập điều này thông qua chính Jenkins here.
Cuối cùng, nếu bạn cần kiến, bạn có thể sử dụng clojure-ant-tasks.
Một phiếu bầu khác cho Jenkins; Tôi đã thành công khi sử dụng nó với Leiningen bằng cách sử dụng không có gì ngoài một lệnh shell cơ bản. Liên kết ở trên là một cách để làm điều đó, nhưng không có gì sai khi chỉ cần cài đặt leiningen qua apt chứ không phải là một công việc CI riêng biệt. – technomancy
@Cho, liên kết đến "cách thông minh" bị hỏng –
Có lý do gì khiến bạn không đề xuất palletops nữa không? (Tôi đã tìm thấy liên kết này: http://cemerick.com/2010/11/02/continuous-deployment-of-clojure-web-applications/) – nha
Như một điểm dữ liệu, tôi sử dụng:
- Maven để xây dựng các dự án có nhiều thứ tiếng Clojure + Java
- GitHub cho SCM
- Travis CI cho hội nhập liên tục dựa trên các GitHub nguồn.
Điểm quan trọng là bằng cách tạo công việc xây dựng với Maven, bạn có thể móc vào hệ sinh thái công cụ CI chuẩn Java khá dễ dàng. Theo như Travis CI là có liên quan, nó là chỉ là một dự án Java - Clojure được coi là một thư viện Java bổ sung có hiệu quả từ quan điểm của quá trình xây dựng. Đây là travis.yml
config:
language: java
jdk:
- oraclejdk7
- openjdk7
- openjdk6
Dưới đây là một ví dụ dự án mã nguồn mở sử dụng phương pháp này:
Lambda CD có lẽ là những gì bạn muốn. Nó cho phép bạn viết các bản xây dựng và các đường ống phân phối trong clojure. Nó tương đối mới và dường như trở nên phổ biến hơn. http://www.lambda.cd/
- 1. opencvdotnet và FFMPEG - có bất kỳ tùy chọn tích hợp nào không?
- 2. Oracle có bất kỳ hàm băm tích hợp nào không?
- 3. tích hợp liên tục python
- 4. HUnit/QuickCheck với tích hợp liên tục
- 5. Có thể tích hợp Google AppEngine và Google Code để tích hợp liên tục không?
- 6. Windows Azure và tích hợp liên tục
- 7. Tích hợp liên tục tre
- 8. Tích hợp liên tục với ASP.Net MVC
- 9. Tích hợp liên tục Git trên Windows
- 10. Có trình xử lý java.util.logging mạnh mẽ của syslog không?
- 11. "Pretty" Tích hợp liên tục cho Python
- 12. ASP.NET MVC: DropDownListFor không chọn bất kỳ tùy chọn
- 13. Có phải Visual C++ mạnh mẽ như gcc không?
- 14. Kiểm tra để tích hợp liên tục
- 15. nét liên tục trong Clojure
- 16. tích hợp liên tục với mysql
- 17. Công cụ tích hợp liên tục nào phù hợp với php?
- 18. Cấu hình tích hợp liên tục
- 19. Subversion có được "hỗ trợ" bằng các công cụ tích hợp liên tục hơn Mercurial không?
- 20. có bất kỳ ứng dụng khách redis php nào hỗ trợ kết nối liên tục không?
- 21. Nhà cung cấp dịch vụ tích hợp liên tục SVN
- 22. Có bất kỳ hàm PHP gốc nào có ném ngoại lệ tích hợp không?
- 23. Bạn sử dụng phần mềm tích hợp liên tục nào?
- 24. Làm thế nào để xây dựng apis dữ liệu mạnh mẽ trong clojure
- 25. Bạn có đề xuất TFS hoặc một hệ thống Tích hợp liên tục khác không?
- 26. Khung tích hợp liên tục nào cho Perl?
- 27. Làm thế nào để mạnh mẽ chiều cao dòng trong css, không có streches?
- 28. Số ngẫu nhiên mạnh mẽ Thế hệ
- 29. Bất kỳ lựa chọn thay thế nào cho .Net 4 Code Hợp đồng phân tích tĩnh?
- 30. Nút hoa nhài có cung cấp bất kỳ tùy chọn "không nhanh" nào không?
Vì vậy .... Leiningan có phải là tùy chọn để xây dựng trực tiếp không? Đó là bạn đề nghị tôi nên bọc Leiningan trong maven/ant/gradle – jayunit100
Ant, Maven, Gradle, và Leiningen là các đồng nghiệp, và sau này có thể được (và) được sử dụng độc lập với những người khác mọi lúc.Cho dù đáp ứng yêu cầu của bạn có phải là vấn đề riêng biệt hay không (ví dụ: leiningen không có khái niệm riêng biệt về bản phát hành như Maven, nhưng cũng không có kiến hay cao điểm). Trong mọi trường hợp, mọi người gọi ra các công cụ xây dựng khác từ chiếc xe chính của họ mọi lúc, do đó các nhiệm vụ maven cho kiến, plugin antaven maven, vv Leiningen thực sự được xây dựng trên các nhiệm vụ kiến quạ, vì vậy có nhiều cấp độ rùa. :-) – cemerick