मैं कई shared-library
नामित submodules के साथ एक Gradle परियोजना है शामिल हैं।Gradle - रिकर्सिवली बाहरी परियोजना और इसके उप
मेरे पास service
नामक एक प्रोजेक्ट है जो shared-library
के मॉड्यूल में से एक पर निर्भर करता है। उदाहरण के लिए, यह :shared-library:module1
पर निर्भर करता है। आम तौर पर, मुझे यह निर्भरता मेवेन से मिलती है।
अब मैं shared-library
को संशोधित करने और निर्भर परियोजना का उपयोग कर मेरी बदलाव की जांच करना। shared-library
में परिवर्तन करने के बजाय, मेवेन में तैनाती, बिल्डिंग, फिर मेरे service
का पुनर्निर्माण करना, मैं service
shared-library
ग्रेडल प्रोजेक्ट पर सीधे पर निर्भर करता हूं।
तो मुझे पता चला है कि आप फाइल सिस्टम पर मनमाने ढंग से परियोजना निर्देशिका के लिए Gradle इंगित कर सकते हैं:
सेवा/settings.gradle
include "shared-library"
project(":shared-library").projectDir = new File("/projects/shared-library")
लेकिन जब मैं यह करते हैं, परियोजना नहीं बारे में पता है shared-library
के submodules के। मैं ऐसा नहीं कर सकते:
सेवा/build.gradle
compile(
project(":shared-library:module1"),
)
तो मैंने कोशिश की include
उन्हें सीधे ing। :shared-library:module1
:shared-library:module2
पर निर्भर करता है इसलिए मैं उस के रूप में अच्छी तरह से एक में शामिल हैं:
सेवा/settings.gradle
include "shared-library"
project(":shared-library").projectDir = new File("/projects/shared-library")
include "shared-library:module2"
include "shared-library:module1"
लेकिन अब जब मैं इस चलाने का प्रयास है, यह शिकायत है कि :shared-library:module1
:module2
नाम के एक प्रोजेक्ट का पता नहीं कर सकते। इसका कारण यह है अपनी निर्भरता जैसे कॉन्फ़िगर किया गया है:
साझा-पुस्तकालय/module1/build.gradle
compile(
project(":module2")
)
लेकिन अगर मैं बदल कि एक पूर्ण परियोजना पथ के लिए, अब shared-library
अपने आप ही संकलन नहीं कर सकते :
साझा-पुस्तकालय/module1/build.gradle
compile(
project(":shared-library:module2")
)
tl; dr, ऐसा लगता है कि service
के बीच एक मेल नहीं है shared-library
सबमिशन नाम और shared-library
यह कैसे करता है।
मैं भूल गया था कि मैं इस प्रश्न पूछा! मैं अंततः इस समाधान पर आया, लेकिन फैसला किया कि मेरे स्थानीय मैवेन रेपो में स्नैपशॉट इंस्टॉल करना आसान था। लेकिन मैं अभी भी आपका जवाब स्वीकार करूंगा, क्योंकि अब यह करने का तरीका है। – SirBraneDamuj