Gradle - สร้างหลายโครงการ
Gradle สามารถจัดการโครงการที่เล็กที่สุดและใหญ่ที่สุดได้อย่างง่ายดาย โครงการขนาดเล็กมีไฟล์บิลด์เดียวและแผนผังแหล่งที่มา เป็นเรื่องง่ายมากที่จะสรุปและทำความเข้าใจโครงการที่ถูกแบ่งออกเป็นโมดูลขนาดเล็กที่ต้องพึ่งพาระหว่างกัน Gradle รองรับสถานการณ์นี้อย่างสมบูรณ์แบบซึ่งเป็นการสร้างหลายโครงการ
โครงสร้างสำหรับการสร้างหลายโครงการ
งานสร้างดังกล่าวมีทุกรูปทรงและขนาด แต่มีลักษณะทั่วไปบางประการ -
ก settings.gradle ไฟล์ในไดเร็กทอรีรูทหรือมาสเตอร์ของโปรเจ็กต์
ก build.gradle ไฟล์ในไดเร็กทอรี root หรือ master
ไดเรกทอรีย่อยที่มีของตัวเอง *.gradle สร้างไฟล์ (บิวด์หลายโปรเจ็กต์บางตัวอาจละเว้นสคริปต์การสร้างโปรเจ็กต์ลูก)
สำหรับการแสดงรายการโปรเจ็กต์ทั้งหมดในไฟล์บิลด์คุณสามารถใช้คำสั่งต่อไปนี้
C:\> gradle -q projects
เอาท์พุต:
------------------------------------------------------------
Root project
------------------------------------------------------------
Root project 'projectReports'
+--- Project ':api' - The shared API for the application
\--- Project ':webapp' - The Web application implementation
To see a list of the tasks of a project, run gradle <project-path>:tasks
For example, try running gradle :api:tasks
รายงานจะแสดงคำอธิบายของแต่ละโครงการหากระบุไว้ คุณสามารถใช้คำสั่งต่อไปนี้เพื่อระบุคำอธิบาย วางลงในไฟล์build.gradle ไฟล์.
description = 'The shared API for the application'
การระบุการกำหนดค่าการสร้างทั่วไป
ใน build.gradle ไฟล์ใน root_project การกำหนดค่าทั่วไปสามารถใช้กับโปรเจ็กต์ทั้งหมดหรือเฉพาะกับโปรเจ็กต์ย่อย
allprojects {
group = 'com.example.gradle'
version = '0.1.0'
}
subprojects {
apply plugin: 'java'
apply plugin: 'eclipse'
}
สิ่งนี้ระบุทั่วไป com.example.gradle กลุ่มและ 0.1.0เวอร์ชันสำหรับโครงการทั้งหมด subprojects การปิดใช้การกำหนดค่าทั่วไปสำหรับโปรเจ็กต์ย่อยทั้งหมด แต่ไม่ใช่กับโปรเจ็กต์รูทเช่นไฟล์ allprojects ปิดไม่
การกำหนดค่าเฉพาะโครงการและการอ้างอิง
แกน ui และ util โครงการย่อยสามารถมีของตัวเองได้ build.gradle ถ้าพวกเขามีความต้องการเฉพาะซึ่งยังไม่ได้ใช้โดยการกำหนดค่าทั่วไปของโครงการรูท
ตัวอย่างเช่นโครงการ ui มักจะมีการพึ่งพาโครงการหลัก ดังนั้นโครงการ ui จึงต้องการของตัวเองbuild.gradle ไฟล์เพื่อระบุการอ้างอิงนี้
dependencies {
compile project(':core')
compile 'log4j:log4j:1.2.17'
}
การอ้างอิงโครงการถูกระบุด้วยวิธีการของโครงการ