2012-12-14 14 views
8

धीरे-धीरे, एक सामान्य जावा प्रोजेक्ट लेआउट (src/main/java) के विपरीत, buildSrc फ़ाइल को शीर्ष स्तर के रूप में उपयोग करने का उद्देश्य क्या है?ग्रेडल के निर्माण एसआरसी फ़ोल्डर का उद्देश्य क्या है?

अगर मैं क्या फर्क (या ऐसा करने के लिए कारण) होगा

src 
    main 
     java 

या

buildSrc 
    src 
     main 
      java 

की एक लेआउट है? क्या यह बहु मॉड्यूल परियोजनाओं में अधिक उपयोगी है? यहां तक ​​कि एक बहु मॉड्यूल परियोजना के लिए, मैं

proj1 
    src 


proj2 
    src 

और फिर बस (proj1 और proj2 के रूप में एक ही स्तर पर) एक शीर्ष स्तर build.gradle है की तरह कुछ है कि परियोजनाओं में आम सेटिंग परिभाषित नहीं कर सका?

उत्तर

22

buildSrc एक अलग निर्माण जिसका उद्देश्य किसी भी कार्य, प्लग इन, या अन्य जो निर्माण स्क्रिप्ट मुख्य निर्माण के में इस्तेमाल किया जा करने का इरादा कर रहे हैं वर्गों का निर्माण करने की है, लेकिन भर में बनाता है साझा करने के लिए की जरूरत नहीं है (*) मुख्य भवन के हिस्से के रूप में ऐसी कक्षाएं बनाना संभव नहीं होगा, क्योंकि मुख्य निर्माण की निर्माण स्क्रिप्ट को संकलित/मूल्यांकन करने से पहले उन्हें अस्तित्व में रखना होगा, और ग्रैडल सभी बिल्ड स्क्रिप्ट को संकलित/मूल्यांकन करता है इससे पहले कि यह करता है कोई काम (विन्यास बनाम निष्पादन चरण)।

बिल्ड निर्माण स्क्रिप्ट में सभी बिल्ड कोड डालने की तुलना में, buildSrc आपको नियमित कोड की तरह बिल्ड कोड विकसित करने का एक तरीका देता है, जैसे आप परीक्षण कर सकते हैं, आपके आईडीई में आयात कर सकते हैं आदि। यह स्क्रिप्ट बनाने के लिए एक तरीका है अधिक जटिल निर्माण के लिए भी सरल और DRY।

buildSrc बहु-परियोजना निर्माण में अक्सर देखा जाता है क्योंकि बड़े निर्माण अपने स्वयं के कस्टम कार्यों और प्लगइन्स को लागू करने की अधिक संभावना रखते हैं।

समय के साथ, buildSrc एकाधिक निर्भर निष्पादित करने की अधिक सामान्य क्षमता में वृद्धि करेगा, एक ही ग्रैडल आमंत्रण में बनाता है।

(*) बिल्डों में कक्षाओं को साझा करना संभव है लेकिन अधिक शामिल है। विशेष रूप से, आपको कक्षाओं को एक भंडार में प्रकाशित करने की आवश्यकता होगी, और उपभोग करने वाले निर्माणों को स्पष्ट रूप से वहां से आयात करना होगा, निर्माण के दौरान उत्पादन पुस्तकालयों को साझा करते समय।

+0

विस्तृत स्पष्टीकरण के लिए धन्यवाद! –

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