Việc di chuyển từ Maven sang Gradle không dễ như từ Ant đến Maven (ít nhất là vào lúc này). Bạn có thể dễ dàng reuse Ant scripts và biến họ thành công dân hạng nhất trong bản dựng Gradle của bạn. Có một nhiệm vụ trên Gradle roadmap cho deep import of Maven builds.
Cho đến nay tôi đã di chuyển hai doanh nghiệp xây dựng Maven sang Gradle. Cả hai đều là các dự án đa mô-đun sử dụng các plugin Maven tiêu chuẩn. Tôi về cơ bản viết lại việc xây dựng Gradle cách mà đòi hỏi ít nhất một số kiến thức về Gradle. Dựa trên kinh nghiệm của tôi, bạn có thể dễ dàng có được cùng một bản dựng đang chạy trong Gradle. Gradle không thực sự đóng hộp bạn ở đây và khá linh hoạt. Trên đường đi, bạn có thể thấy mình phải viết một plugin tùy chỉnh chưa tồn tại tùy thuộc vào những plugin Maven bạn đang sử dụng. Tuy nhiên, đã có wide breath of plugins ngoài kia. Cho đến nay tôi đã không chạy vào một rào cản thực sự được nêu ra. Mặc dù các tài liệu Gradle là khá tốt, bạn có thể thấy mình đọc rất nhiều bài viết diễn đàn Gradle để tìm ra giải pháp cho một trong những vấn đề của bạn. Một số tính năng Maven tiêu chuẩn không được hỗ trợ out-of-the-box ví dụ: một phạm vi provided
hoặc WAR inplace. Tuy nhiên, có những cách dễ dàng xung quanh nó. Tôi đã không sử dụng kho chứa Artifactory. Những cái tôi xử lý là kho chứa Nexus. Theo như tôi biết các chàng trai Gradle có hỗ trợ tốt cho Artifactory mặc dù. Chỉnh sửa: JFrog cung cấp Artifactory Gradle plugin.
Cách tốt nhất để bắt đầu là sử dụng công cụ di chuyển Maven2Gradle để bạn tạo tập lệnh Gradle từ bản dựng Maven của bạn. Cá nhân, tôi chưa sử dụng nó. Tôi đã xây dựng Gradle bên cạnh với công trình Maven mà không gây ra rắc rối nào. Maven đặt đầu ra dưới target
, Gradle dưới build
. Hãy chắc chắn rằng bạn chuẩn bị nhóm của bạn cho sự thay đổi. Hãy để họ thử xây dựng Gradle và làm quen với công cụ này.
Khi bạn di chuyển hoàn toàn, bạn sẽ rất hài lòng về khả năng bảo trì và khả năng mở rộng của bản dựng. Rất dễ dàng để thêm logic xây dựng tùy chỉnh và bạn sẽ biết ơn rằng bạn đã rời khỏi vùng đất XML. Về mặt hiệu suất, bạn sẽ không quay lại một bước nữa. Các tính năng xây dựng gia tăng hiện công việc của mình rất tốt.
Nguồn
2011-10-11 00:46:02
Các Gradle plugin chiến tranh hiện nay (tức là trong Gradle 1.0-milestone-6) hỗ trợ hai cấu hình bổ sung: compileProvided và runtimeProvided. –
Thật không may, điều này không giúp bạn nếu dự án của bạn không áp dụng các plugin WAR. Bạn vẫn phải xác định cấu hình 'được cung cấp' của riêng mình. Điều này vẫn còn được thảo luận một cách controverisally trong cộng đồng Gradle, v.d. xem [vé JIRA] này (http://issues.gradle.org/browse/GRADLE-784). –