Một dự án nhiều mô-đun có một mô-đun chính và nhiều mô-đun con. Nó có bố cục sau:
(root)
+- settings.gradle
+- build.gradle # optional (commonly present)
+- gradle.properties # optional
+-- buildSrc/ # optional
| +- build.gradle
| +-- src/...
+-- my-gradle-stuff/ # optional
| +- utils.gradle # optional
+-- sub-a/
| +- build.gradle
| +- src/
+-- sub-b/
+- build.gradle
+- src/
mô-đun con cũng có thể được đặt sâu hơn trong các thư mục con, nhưng không cần sửa đổi mã trong settings.gradle, tên của chúng sẽ bao gồm tên của các thư mục đó.
settings.gradle
Vai trò chính của settings.gradle là xác định tất cả các mô-đun con được bao gồm và đánh dấu thư mục gốc của cây mô-đun, vì vậy bạn chỉ có thể có một settings.gradle
tệp trong một dự án nhiều mô-đun.
rootProject.name = 'project-x'
include 'sub-a', 'sub-b'
Tệp cài đặt cũng được viết bằng Groovy và tra cứu mô-đun con có thể được tùy chỉnh.
build.gradle
Có một tệp như vậy cho mỗi mô-đun, nó chứa logic xây dựng cho mô-đun này.
Trong build.gradle
tệp của mô-đun chính , bạn có thể sử dụng allprojects {}
hoặc subprojects {}
để xác định cài đặt cho tất cả các mô-đun khác.
Trong build.gradle
tệp của các mô-đun con, bạn có thể sử dụng compile project(':sub-a')
để làm cho một mô-đun con phụ thuộc vào mô-đun con kia.
gradle.properties
Đây là tùy chọn, mục đích chính của nó là cung cấp các tùy chọn khởi động để sử dụng cho việc chạy chính gradle, ví dụ:
org.gradle.jvmargs=-Xmx=... -Dfile.encoding=UTF-8 ...
org.gradle.configureondemand=true
Các giá trị này có thể được ghi đè bởi một tệp USER_HOME/.gradle/gradle.properties
và bị ghi đè bởi các đối số dòng lệnh gradle. Ngoài ra, có thể đặt các biến môi trường cho bản dựng trong tệp này bằng cách sử dụng systemProp.
tiền tố.
Bất kỳ thuộc tính nào trong tệp này đều có thể được sử dụng trong bất kỳ build.gradle nào, vì vậy một số dự án cũng đưa phiên bản phụ thuộc hoặc thông tin phát hành vào gradle.properties
, nhưng đó có thể là sự lạm dụng tệp này.
my-gradle-things / utils.gradle
(Bất kỳ tên thư mục hoặc tệp nào cũng được.) Bạn có thể xác định tệp gradle tùy chỉnh bổ sung để sử dụng lại các định nghĩa và đưa chúng vào các tệp gradle khác thông qua
apply from: "$rootDir/gradle/utils.gradle"
những nơi khác để đặt cái này có thể là src/gradle
hoặcsrc/build/gradle
buildSrc / ...
Thư mục này thật đặc biệt, bản thân nó giống như một dự án gradle riêng biệt. Nó được xây dựng trước khi làm bất cứ điều gì khác và có thể cung cấp chức năng để sử dụng trong bất kỳ tệp gradle nào khác. Vì lý do kỹ thuật, hỗ trợ IDE cho các tham chiếu đến thư mục này hoạt động tốt hơn nhiều so với bất kỳ cách nào khác để trích xuất mã chung từ nhiều build.gradle
tệp vào một vị trí riêng biệt.
Bạn có thể xác định logic xây dựng tùy chỉnh phức tạp trong java, groovy hoặc kotlin, thay vì viết và triển khai một plugin. Điều này cũng hữu ích để kiểm tra đơn vị mã xây dựng tùy chỉnh của bạn, vì bạn có thể kiểm tra đơn vị. Cấu trúc thư mục nguồn trong buildSrc
có thể được điều chỉnh giống như cho bất kỳ dự án java / groovy / kotlin nào.