grails

2011-11-01 18 views
7

में मेरे क्लासपाथ के httpclient ऑफ के संस्करण 4.0 को कैसे प्राप्त करें I Grails 1.3.7 का उपयोग कर रहा हूं और यह समझ नहीं सकता कि मेरे क्लासपाथ (4.1 के पक्ष में) httpclient के संस्करण 4.0 को कैसे प्राप्त करें। मुझे ऐसा करने की ज़रूरत है क्योंकि 4.1 में इस्तेमाल किए गए नो-Args कन्स्ट्रक्टर की प्लगइन पर निर्भर करता है।grails

एक grails 'निर्भरता रिपोर्ट' चल रहा है, ऐसा लगता है कि 4.1 रनटाइम पर इस्तेमाल किया जाना चाहिए। और यह है, अगर मैं चीजों को एक .war में पैकेज करता हूं। कुछ कारणों से रन-ऐप का उपयोग करते समय संस्करण 4.0 अभी भी क्लासपाथ पर समाप्त हो रहा है। ध्यान दें कि कुछ grails internals के लिए संकलन समय पर इसका उपयोग किया जा रहा है, और किसी भी तरह से यह अभी भी मेरे क्लासपाथ पर समाप्त हो रहा है।

-> मैं यह पता लगाने कर सकते हैं जहां वास्तव में 4.0 .jar से आ रही है और मेरी classpath पर पहुंचेगा और ऐसा होने से इसे रोकने के है

(जब रन एप्लिकेशन के माध्यम से चल रहा है, जहां सभी .jars डाल?) -> क्या मैं अपने आंतरिक के लिए 4.0 के बजाय 4.1 के साथ संकलन करने के लिए grails बता सकता हूं (इस मामले में http-builder org.codehaus.groovy.modules.http-builder मॉड्यूल द्वारा?) तर्कसंगत समाधान नहीं है लेकिन मैं इसे ले जाऊंगा , जब भी मैं परीक्षण करना चाहता हूं, हर बार एक .war में पैकेजिंग सब कुछ सुखद नहीं है।

सहायता की सराहना की जाएगी।

उत्तर

7

मैं सिर्फ एक ही बात के माध्यम से चला गया, अपने BuildConfig.groovy के लिए निम्न जोड़ने

dependencies {   
     build 'org.apache.httpcomponents:httpcore:4.1.2' 
     build 'org.apache.httpcomponents:httpclient:4.1.2' 
     runtime 'org.apache.httpcomponents:httpcore:4.1.2' 
     runtime 'org.apache.httpcomponents:httpclient:4.1.2' 
} 

चियर्स

ली

+0

मैंने वास्तव में 'बिल्ड' निर्दिष्ट प्लगइन को संशोधित करके इसे हल किया: रिलीज: 1.0.0.आरसी 3 'निर्यात किया गया' झूठा 'जोड़कर, लेकिन मैंने आपका समाधान स्वीकार कर लिया है क्योंकि यह आपके भीतर रखने के लिए थोड़ा क्लीनर हो सकता है स्वयं का कोड और प्लगइन निर्भरता फ़ाइल को संशोधित करने की आवश्यकता नहीं है। नीचे की रेखा, यह 'निर्माण' विनिर्देशक है। वह अपराधी है। धन्यवाद – Peter

1

आप एक शामिल नहीं जोड़कर classpath के बंद httpclient 4.0 प्राप्त कर सकते हैं BuildConfig.groovy में लाइन। चित्रित करें कि कौन सा प्लगइन grails dependency-report कमांड का उपयोग कर निर्भरता के रूप में घोषित कर रहा है।

एक बार जब आप पाते हैं कि इसमें कौन सा शामिल है, तो आप इसे BuildConfig.groovy के प्लगइन अनुभाग में बाहर कर सकते हैं। उदाहरण:

plugins { 
    compile ':other-plugin:1.0.0' // other-plugin depends on httpclient 4.1 
    compile(':aws:1.2.12.2') { // aws plugin depends on httpclient:3.1 
     excludes 'httpclient' 
    } 
} 

कि httpclient 4.1 में कोई आर्ग निर्माता पर निर्भर करता है एक निर्भरता के रूप में यह घोषणा करनी चाहिए प्लगइन। यदि आपको प्लगइन के लेखक के साथ कोई समस्या नहीं खोलनी चाहिए। इसे हल करने के लिए, आप उपरोक्त वर्णों के रूप में निर्भरता अनुभाग में httpclient 4.1 सूचीबद्ध कर सकते हैं।