मेरे पास एक जटिल प्रवण लिपि है, जो कई नेटवर्क्स परियोजनाओं के निर्माण और तैनाती के आसपास कार्यक्षमता का एक भार उठाती है।
स्क्रिप्ट बहुत अच्छी तरह से काम करती है, लेकिन संक्षेप में यह परियोजना और पर्यावरण की जानकारी रखने वाले आधा दर्जन मानचित्रों के माध्यम से कॉन्फ़िगर किया गया है।
मैं कार्यों को एक अन्य फ़ाइल में अलग करना चाहता हूं, ताकि मैं अपने नक्शे को एक साधारण बिल्ड फ़ाइल में परिभाषित कर सकूं और अन्य फ़ाइल से कार्यों को आयात कर सकूं। इस तरह, मैं कई परियोजनाओं के लिए एक ही मूल कार्यों का उपयोग कर सकता हूं और उन परियोजनाओं को सरल सेट के साथ कॉन्फ़िगर कर सकता हूं।
क्या कोई मुझे बता सकता है कि चींटी के कार्य के समान तरीके से मैं एक ग्रेड फ़ाइल को दूसरे में कैसे आयात कर सकता हूं? मैंने ग्रैडल के डॉक्स को अब तक कोई फायदा नहीं पहुंचाया है।
अतिरिक्त जानकारी
नीचे टॉम की प्रतिक्रिया के बाद, मैंने सोचा कि मैं कोशिश करूँगा और स्पष्ट करूँगा कि मेरा क्या मतलब है।
मूल रूप से मेरे पास एक ढाल स्क्रिप्ट है जो कई सबप्रोजेक्ट चलाता है। हालाँकि, सबप्रोजेक्ट सभी नेटबिन प्रोजेक्ट हैं, और अपनी स्वयं की चींटी बिल्ड स्क्रिप्ट के साथ आते हैं, इसलिए मुझे इनमें से प्रत्येक को कॉल करने के लिए ग्रेडेल में कार्य हैं।
मेरी समस्या यह है कि फ़ाइल के शीर्ष पर मेरा कुछ विन्यास है, जैसे:
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 फ़ाइल में परिभाषित परियोजनाओं के लिए चला जाएगा। इस तरह, टास्क.ग्रेड एक ऐसी फाइल है जिसका उपयोग सभी बड़ी परियोजनाओं द्वारा किया जा सकता है, जिसमें नेटबीन एंट बिल्ड फ़ाइलों के साथ कई उप-परियोजनाएं शामिल हैं।
apply from
बाहरी कार्यों को तुरंत निष्पादित करता है। यह निष्पादन तर्क में बेहतर नहीं हो सकता है (यानी जब मैं चाहता हूं कि कार्यों को निष्पादित करना चाहता हूं, अभी नहीं)।
apply from
बाहरी कार्यों को तुरंत निष्पादित करता है। गुमराह मत हो। बाहरी कार्यों को कॉन्फ़िगर किया गया है, निष्पादित नहीं किया गया है।