2013-06-07 30 views
86

Tôi có một bản dựng nhiều mô đun. Tôi muốn thực hiện các mục tiêu cho một mô-đun bằng root. Ví dụ:Gradle chỉ xây dựng một mô-đun

gradle build -Pmodule=ABC 
gradle jar -Pmodule=ABC 
gradle test -Pmodule=ABC 
gradle compileJava -Pmodule=ABC 
gradle customTask -Pmodule=ABC 
etc. 

Vì vậy, mọi mục tiêu đều có thể chạy từ gốc xác định mô-đun. Có cách nào đơn giản để thực hiện việc này không?

Cảm ơn!

+0

'if (project.hasProperty ('module') && module.equals ('ABC')) {// execute module ABC} ...'. Đây là những gì bạn muốn đạt được? – pepuch

Trả lời

189

Để thực hiện một nhiệm vụ của một dự án cụ thể, xác định con đường nhiệm vụ của mình. Ví dụ:

gradle :ABC:build 

Hàng đầu : là viết tắt của dự án gốc. ABC là tiểu dự án và build một nhiệm vụ trong dự án đó.

+2

Bạn có thể kiểm soát thông qua cấu hình thay vì dòng lệnh để chỉ lắp ráp một tiểu dự án ra sao? Đối với các đường ống phát hành của Google, nó sẽ tắt "lắp ráp sạch sẽ gradle" trong dự án gốc. Đối với tôi, điều đó sẽ cố gắng xây dựng các bản dựng AppEngine và Android. Đường ống phát hành sẽ không thành công trên bản dựng Android vì nó không có SDK được cài đặt, dễ hiểu đối với một máy tạm thời. Ngoài ra, nó không giống như Release Pipelines cung cấp bất kỳ tùy chọn cấu hình nào. – brunobowden

+0

Trong trường hợp của tôi, dự án gốc vẫn kiểm tra và kích hoạt các thông báo lỗi mà tôi không muốn xử lý tại thời điểm này. Rất phiền phức. –

53

Tìm thấy một cách nhanh chóng

gradle build -p moduleA 

moduleA là thư mục của module.

Trên lệnh xây dựng một moduleA và tất cả các môđun con của nó, và moduleA nên đường đi của nó

+3

Trên lệnh xây dựng một moudleA và tất cả đó là submodule, và moduleA nên nó con đường 'gradle build -p đường dẫn \ pathSt \ moduleA' – Viraj

+1

Tôi có một wrapper cho các tiểu dự án mà không có tập tin gradle của riêng nó. Không giống như câu trả lời đã chọn, điều này phù hợp với tôi. Ngoài ra cảm ơn cho làm rõ trong bình luận, bạn có thể thêm nó vào câu trả lời? – Vlasec

0

enter image description here

Nếu IDE của bạn là Android Studio, có một way.Just đơn giản chọn thư mục module bạn muốn biên dịch, sau đó nhấp vào Xây dựng và chọn Make Mô-đun 'thư mục module của bạn'.

5

Trên máy Mac. Biến thể duy nhất đang hoạt động với tôi:

./gradlew ABC:build 
+1

Nó hoạt động với tôi trên Linux. Cảm ơn! –

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