2012-01-05 13 views
60

क्या build, runtime, और compile, BuildConfig.groovy में (1.3.7) के बीच का अंतरGrails BuildConfig.groovy, निर्माण, संकलन, और रनटाइम के बीच अंतर?

grails.project.dependency.resolution = { 

    plugins { 
     build "acme:acme-cache:latest.integration" 
    } 

    dependencies { 
     build "com.foo.bar:foobar:1.0.5"  
     runtime "org.apache.httpcomponents:httpclient:4.0.3" 
     compile("com.thoughtworks.xstream:xstream:1.3.1") 
    } 
} 

उत्तर

96
  • build - निर्भरता है कि केवल निर्माण प्रक्रिया के लिए आवश्यक है
  • runtime - निर्भरता एप्लिकेशन को चलाने के लिए आवश्यक है कि है, लेकिन यह जैसे संकलन नहीं विशिष्ट डेटाबेस विक्रेता के लिए जेडीबीसी कार्यान्वयन। यह आमतौर पर संकलन-समय पर आवश्यक नहीं होगा क्योंकि कोड केवल
  • compile - निर्भरता की आवश्यकता है जो संकलन-समय और रनटाइम दोनों पर आवश्यक है। निर्भरता है कि केवल परीक्षण के लिए आवश्यक है, उदाहरण के लिए -

    • test: यह सबसे सामान्य रूप में

    वहाँ अन्य निर्भरता स्कोप के एक जोड़े हैं एक मॉकिंग/परीक्षण लाइब्रेरी

  • provided - संकलन-समय पर निर्भरता की आवश्यकता है लेकिन ऐप के साथ पैक नहीं किया जाना चाहिए (आमतौर पर क्योंकि यह कंटेनर द्वारा प्रदान किया जाता है)। एक उदाहरण है Servlet API
+1

धन्यवाद, डॉन, महान जानकारी, बस एक और त्वरित प्रश्न ... 'बिल्ड' के लिए सम्मेलन' समूह का पालन करना प्रतीत होता है: artifactId: भंडार या संस्करण "', क्या यह रनटाइम के लिए भी समान है और संकलित भी है? – raffian

+0

हां, सभी क्षेत्रों के लिए एक ही सम्मेलन। मैंने कभी भी 'रिपोजिटरी' का उपयोग नहीं किया - मुझे यह भी पता नहीं था कि यह अस्तित्व में है, इसलिए मेरे मामले में मैं 'groupId: artifactId: version' –

+0

निर्दिष्ट करता हूं हम अपने सभी कलाकृतियों को स्टोर करने के लिए आर्टिफैक्टरी का उपयोग कर रहे हैं, इसलिए मैंने इसका उल्लेख किया। ..एक बार फिर धन्यवाद! – raffian

1

एक जोड़े grails आदेशों मदद अंतर दर्शाने है। grails run-app और grails compile पर विचार करें। grails compile संकलन चरण है और इसमें संकलन-समय निर्भरता शामिल होगी। grails run-app रन चरण है और इसमें रनटाइम निर्भरता शामिल होगी। बिल्ड निर्भरता कुछ भी है जो आपको इनमें से किसी भी आदेश को चलाने की आवश्यकता हो सकती है, उदाहरण के लिए, एक कस्टम स्क्रिप्ट जो कुछ निर्माण घटनाओं में हुक करती है।

तो आप उस व्यक्ति को चुनते हैं जो निश्चित रूप से फिट होने पर निश्चित रूप से फिट बैठता है।

5

ऐसा लगता है कि संकलन और निर्माण के बीच भेद पर 2 पिछले उत्तर संघर्ष हैं। मेरा मानना ​​है कि निर्माण उस दायरे में है जिसमें grails compile और grails run-app शामिल हैं, जबकि संकलन सिर्फ पूर्व है।

2

Grails 3 से, निर्भरता Gradle द्वारा प्रबंधित की जाती है। प्रोजेक्ट की रूट में फ़ाइल द्वारा grails-app/conf/BuildConfig.groovy फ़ाइल has been replaced फ़ाइल।

Grails उपयोगकर्ता मार्गदर्शिका explain how to set grails depencies with gradle और इस विषय के बारे में अधिक जानकारी के लिए related Gradle documentation को संदर्भित करता है।

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