2011-08-09 11 views
13

हमारे पास एक पुरानी प्रोजेक्ट है जो इस तरह स्थापित है:Gradle: साइड-बाय-साइड परियोजनाओं के साथ मल्टीप्रोजेक्ट सेटअप को कॉन्फ़िगर कैसे करें

. 
├── customizationProject 
│   ├── ejb 
│   └── services 
├── projectA 
│   ├── ejb 
│   └── shared 
├── projectB 
│   └── ejb 
└── projectC 
    ├── ejb 
    └── services 

विचार यह है कि अनुकूलनप्रोजेक्ट वह जगह है जहां वितरित अनुप्रयोग की अंतिम असेंबली खुशी होती है, वास्तव में कई customizationProjects हो सकते हैं और उनमें एकाधिक कॉन्फ़िगरेशन शामिल हो सकते हैं । हालांकि, यह समस्या नहीं है जिसे मैं हल करने के लिए तैयार हूं।

मैं अनुकूलन बनाना चाहता हूं, ग्रेबल परियोजनाओं की लॉजिकल रूट प्रोजेक्ट को प्रोजेक्ट करें। मैं व्यक्तिगत परियोजनाओं को कैसे कॉन्फ़िगर कर सकता हूं, ताकि वे ए) जानते हों कि वे एक मल्टीप्रोजेक्ट बिल्ड b का हिस्सा हैं) अलग-अलग क्षेत्रों के साथ ठीक से निष्पादित किया जा सकता है, उदा। बस एक सबप्रोजेक्ट के परीक्षण चला रहे हैं, जबकि सभी परीक्षणों को सभी परियोजनाओं में निष्पादित करने की अनुमति भी दे रहे हैं?

+0

यह प्रोजेक्ट वर्तमान में एक अशक्त चींटी स्क्रिप्ट का उपयोग करके बनाया गया है, जो निर्भरताओं के बारे में कुछ भी नहीं जानता है। मैं इसे धीरे-धीरे माइग्रेट करना चाहता हूं ... – kungfoo

उत्तर

16

यह ग्रैडल के साथ समर्थन करने के लिए एक काफी आसान संरचना है। इस सामग्री के साथ अपने customizationProject निर्देशिका में एक settings.gradle फ़ाइल जोड़ें:

includeFlat 'projectA', 'projectB', 'projectC' 

और आप कमांड लाइन से परियोजना संरचना इस बात की पुष्टि कर सकते हैं:

$ gradle projects 
:projects 

------------------------------------------------------------ 
Root Project 
------------------------------------------------------------ 

Root project 'customizationProject' 
+--- Project ':projectA' 
+--- Project ':projectB' 
\--- Project ':projectC' 

includeFlat विधि के विवरण में उपलब्ध है Gradle documentation

आशा है कि मदद करता है!

+2

महत्वपूर्ण नोट: आपको निर्देशिका 'अनुकूलनप्रोजेक्ट' (जहां सेटिंग्स.ग्रैडल फ़ाइल है) में क्रमशः चलाने की आवश्यकता है, अन्यथा यह परियोजनाओं को नहीं मिलेगा। – robinst

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