2012-02-02 9 views
6

मेरी grails प्रोजेक्ट (एक मॉड्यूल जो मैं बनाता हूं) की निर्भरता इसकी निर्माण प्रक्रिया के हिस्से के रूप में एक ज़िप फ़ाइल आउटपुट करता है (एक खपत के लिए फ्लेक्स ऐप) मेवेन-असेंबली-प्लगइन का उपयोग कर। इस ज़िप मॉड्यूल मेरी grails परियोजना में एक (सकर्मक) निर्भरता है के रूप में जार कि यानीGrails एक प्लगइन के रूप में मेरे रेपो में एक ज़िप की व्याख्या कर रहा है, हालांकि यह वास्तव में एक प्लगइन नहीं है

.m2/repository/com/mypackage/domain/1.0.0-SNAPSHOT/domain-1.0.0-SNAPSHOT.jar 
.m2/repository/com/mypackage/domain/1.0.0-SNAPSHOT/domain-1.0.0-SNAPSHOT-generated-tos.zip 

मॉड्यूल के निर्माण से उत्पादन होता है उसी निर्देशिका में अपने स्थानीय mvn रेपो के लिए उत्पादन होता है, जार और ज़िप हैं दोनों को ivy-cache

अब जब मैं अपने grails एप्लिकेशन को शुरू करने का प्रयास करता हूं, तो Grails इस ज़िप को आईवी-कैश से ढूंढ रहा है और इसे एक प्लगइन के रूप में स्थापित करने का प्रयास कर रहा है जो स्पष्ट कारणों से विफल रहता है ...

| Loading Grails 2.0.0 
| Configuring classpath. 
| Environment set to development..... 
| Error Zip ~/.grails/ivy-cache/com.mypackage/domain/zips/domain-1.0.0-SNAPSHOT-generated-tos.zip is not a valid plugin 

ज़िप के लिए यह आवश्यक है रेपो को टी के रूप में एक और मॉड्यूल एमवीएन-निर्भरता-प्लगइन का उपयोग अपनी निर्माण प्रक्रिया के हिस्से के रूप में अनपैक करने के लिए करता है। इस प्रकार, मुझे Grails को इसे अनदेखा करने का तरीका खोजने की आवश्यकता है क्योंकि यह एक प्लगइन ज़िप नहीं है। क्या यह संभव है?

+0

जे, क्या आपने कभी इस समस्या को हल किया? मैं फिलहाल एक ही समस्या में भाग रहा हूं। – jboutros

+0

क्षमा करें, मुझे इस उम्र पहले उत्तर देना चाहिए था - मेरा मानना ​​है कि मैंने जेनर की एक्शनस्क्रिप्ट फ़ाइलों को एक ज़िप के बजाए रार के रूप में पैकेज करने के लिए मेवेन-असेंबली-प्लगइन को कॉन्फ़िगर करने में कामयाब रहा और इसने इसे ग्राइल्स के साथ प्लगइन के रूप में व्याख्या करने के साथ इस मुद्दे को ठीक किया। यह थोड़ी देर हो गया है क्योंकि मैंने इसे अभी किया है इसलिए मेरे पास हाथ का समाधान नहीं है - क्षमा करें। –

उत्तर

0

ऐसा इसलिए है क्योंकि grails में प्लगइन की पैकेजिंग डिफ़ॉल्ट रूप से ज़िप है, और उस प्रारूप में निर्भर किसी भी संग्रह को एक प्लगइन माना जाएगा। परीक्षण इस मुझे लगता है कि यह सब BuildConfig.groovy के विन्यास के साथ क्या करना था बिना

def excludes = { 
    transitive = false 
} 
0

: डिफ़ॉल्ट रूप से शामिल नहीं सकर्मक बनाने के लिए

प्रयास करें।

निर्भरता ब्लॉक के अंदर जो चीजें आप डालते हैं, उन्हें शामिल किया जाना चाहिए, जबकि प्लगइन ब्लॉक में चीजें प्लगइन ज़िप माना जाता है।

एक परियोजना को गलत तरीके से कॉन्फ़िगर करने के बाद मैंने समस्या पर ठोकर खाई। नीचे दिए गए उदाहरण का परीक्षण नहीं किया है :)

dependencies { 
    compile "my.project:artifact:0.1.0:zip" 
} 
plugins { 
    compile "my.project:artifact:0.1.0" // Automatic found as a zip project 

}