Lớp chỉ xây dựng một mô-đun


152

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

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 có thể được chạy từ root chỉ định mô-đun. Có một cách đơn giản để làm điều này?

Cảm ơn !


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

@pepuch, bạn có thể vui lòng làm rõ? Tôi muốn đẩy các bản cập nhật cho ứng dụng của mình có một phần mềm trong đó nhưng để làm cho nó chỉ xây dựng các thay đổi trong ứng dụng mà không cần xây dựng lại thư viện.
The_Martian

Câu trả lời:


302

Để thực hiện một nhiệm vụ của một tiểu dự án cụ thể, chỉ định đường dẫn nhiệm vụ của nó . Ví dụ:

gradle :ABC:build

Các :viết tắt hàng đầu cho các dự án gốc. ABClà tiểu dự án và buildlà một nhiệm vụ trong dự án đó.


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

Trong trường hợp của tôi, dự án gốc vẫn được 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.
Wolfgang Fahl

gradle :ABC:clean :ABC:build
StanislavKo

gradle build -p moduleA tốt hơn, nó sẽ xử lý các phụ thuộc của module.
Giăng

84

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

gradle build -p moduleA

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

Lệnh trên xây dựng một moduleAvà tất cả các mô hình con của nó, và moduleAphải là đường dẫn của nó


4
Lệnh trên xây dựng một moudleA và tất cả các mô hình con của nó, và mô-đun nên là đường dẫn của nó gradle build -p path\pathSt\moduleA
Viraj

1
Tôi có một trình bao bọc cho các tiểu dự án không có tệp lớp của riêng nó. Không giống như câu trả lời được chọn, điều này làm việc cho tôi. Cũng cảm ơn vì đã làm rõ trong bình luận, bạn có thể thêm nó vào câu trả lời không?
Vlasec

24

Trên Mac OS, biến thể duy nhất hoạt động với tôi:

./gradlew  ABC:build

ABC là tên của mô-đun

(Nó cũng có thể hoạt động trên Linux)


5

nhập mô tả hình ảnh ở đây

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.