2013-02-01 8 views
5

मैं एक multiproject Gradle निर्माण किया है, जहां मैं माता-पिता का निर्माण एक चर है कि बच्चे परियोजनाओं में घोषित हो जाता है (मूल्य subproject के आधार पर बदल सकते हैं) का उपयोग करता है में एक कार्य की घोषणा । हालांकि, मैं विन्यास चरण है कि चर मौजूद नहीं है के दौरान कोई त्रुटि मिलती है। मेरे सेटअप की तरहमाता-पिता काम में Gradle उपयोग चर है कि बच्चे में परिभाषित कर रहे हैं

build.gradle (शीर्ष स्तर) लग रहा है

subprojects { 
    myTask { 
    prop = valueDefinedInChild 
    } 

} 

और फिर

build.gradle (subproject)

valueDefinedInChild = 'someValue' 

इस सही ढंग से करने के लिए एक तरीका है?

उत्तर

10

यह करने के लिए (project.evaluationDependsOnChildren()) एक तरीका नहीं है, लेकिन मैं केवल एक अंतिम उपाय के रूप में उपयोग करने की सलाह देते हैं।

build.gradle (शीर्ष स्तर):

subprojects { 
    task myTask { // add task to all subprojects 
     // common configuration goes here 
    } 
} 

build.gradle (subproject):

इसके बजाय, मैं शीर्ष स्तर पर समानताएं, और subproject स्तर पर मतभेद कॉन्फ़िगर कर
myTask { 
    prop = 'someValue' 
} 

अपने आप को दोहराने से बचने का एक और तरीका एक अलग लिपि में सामान्य कोड को कारक बनाना है, और उपप्रोजेक्ट्स में इसे apply from: के साथ शामिल करना है। यह एक अच्छा विकल्प है जब तर्क केवल चयनित उप पर लागू होता है, या मामलों में यह (जैसे Gradle के नए configuration on demand सुविधा का उपयोग कर जब) माता-पिता परियोजना और subprojects के बीच युग्मन से बचने के लिए वांछनीय है जहां।

+0

धन्यवाद मैं उप करने के लिए ऊपर और subproject विशिष्ट विन्यास के लिए आम विन्यास चलती समाप्त हो गया। अच्छा काम करता है। –

+0

आप मेरा दिन बना दिया, धन्यवाद –

संबंधित मुद्दे