ฉันมีสคริปต์ gradle ที่ซับซ้อนซึ่งรวบรวมฟังก์ชันการทำงานรอบ ๆ การสร้างและปรับใช้โครงการ netbeans จำนวนมากกับสภาพแวดล้อมต่างๆ
สคริปต์ทำงานได้ดีมาก แต่โดยพื้นฐานแล้วมันถูกกำหนดค่าผ่านแผนที่ครึ่งโหลที่มีข้อมูลโครงการและสภาพแวดล้อม
ฉันต้องการแยกงานออกเป็นไฟล์อื่นเพื่อที่ฉันจะได้กำหนดแผนที่ของฉันในไฟล์บิลด์ธรรมดาและนำเข้างานจากไฟล์อื่นได้ ด้วยวิธีนี้ฉันสามารถใช้งานหลักเดียวกันกับโครงการต่างๆและกำหนดค่าโครงการเหล่านั้นด้วยชุดแผนที่ง่ายๆ
ใครช่วยบอกฉันหน่อยได้ไหมว่าฉันจะนำเข้าไฟล์ gradle หนึ่งไฟล์ไปยังอีกไฟล์หนึ่งในลักษณะเดียวกับงานของ Ant ฉันลากเส้นเอกสารของ Gradle จนไม่มีประโยชน์
ข้อมูลเพิ่มเติม
หลังจากคำตอบของทอมด้านล่างฉันคิดว่าฉันจะพยายามชี้แจงว่าฉันหมายถึงอะไร
โดยทั่วไปฉันมีสคริปต์ gradle ซึ่งรันโปรเจ็กต์ย่อยจำนวนมาก อย่างไรก็ตามโครงการย่อยเป็นโครงการ Netbeans ทั้งหมดและมาพร้อมกับสคริปต์สร้างมดของตัวเองดังนั้นฉันจึงมีงานที่ต้องทำอย่างค่อยเป็นค่อยไปเพื่อเรียกสิ่งเหล่านี้
ปัญหาของฉันคือฉันมีการกำหนดค่าบางอย่างที่ด้านบนของไฟล์เช่น:
projects = [
[name:"MySubproject1", shortname: "sub1", env:"mainEnv", cvs_module="mod1"],
[name:"MySubproject2", shortname: "sub2", env:"altEnv", cvs_module="mod2"]
]
จากนั้นฉันสร้างงานต่างๆเช่น:
projects.each({
task "checkout_$it.shortname" << {
// Code to for example check module out from cvs using config from 'it'.
}
})
ฉันมีตัวอย่างข้อมูลการสร้างงานประเภทนี้มากมายและทั้งหมดเป็นแบบทั่วไป - ทั้งหมดขึ้นอยู่กับการกำหนดค่าในรายการโครงการ
ดังนั้นสิ่งที่ฉันต้องการคือวิธีใส่สิ่งนี้ในสคริปต์แยกต่างหากและนำเข้าด้วยวิธีต่อไปนี้:
projects = [
[name:"MySubproject1", shortname: "sub1", env:"mainEnv", cvs_module="mod1"],
[name:"MySubproject2", shortname: "sub2", env:"altEnv", cvs_module="mod2"]
]
import("tasks.gradle") // This will import and run the script so that all tasks are generated for the projects given above.
ดังนั้นในตัวอย่างนี้ task.gradle จะมีโค้ดการสร้างงานทั่วไปทั้งหมดและจะรันสำหรับโปรเจ็กต์ที่กำหนดไว้ในไฟล์ build.gradle หลัก ด้วยวิธีนี้ task.gradle คือไฟล์ที่สามารถใช้ได้กับโปรเจ็กต์ขนาดใหญ่ทั้งหมดที่ประกอบด้วยโปรเจ็กต์ย่อยจำนวนมากที่มีไฟล์บิวด์มด Netbeans