/ / ग्रेडेल में रनटाइम के लिए कुछ संकलन निर्भरताओं को छोड़ दें - ग्रूवी, ग्रेडेल

Gradle - groovy, gradle में रनटाइम के लिए कुछ संकलन निर्भरताओं को बाहर निकालें

मैं अपने ग्रूवी एप्लिकेशन के निर्माण के लिए ग्रेडेल का उपयोग कर रहा हूं। हमेशा की तरह मैं निर्दिष्ट करता हूं compile में निर्भरताएँ build.gradle स्क्रिप्ट, इस तरह:

dependencies {
// groovy
compile "org.codehaus.groovy:groovy:$groovyVersion"
compile "org.codehaus.groovy:groovy-json:$groovyVersion"
compile "org.codehaus.groovy:groovy-test:$groovyVersion"

// some more external dependencies...
}

ठीक है, के लिए runtime मुझे इन सभी निर्भरताओं की आवश्यकता नहीं है, उदाहरण के लिए मुझे किसी भी परीक्षण कक्षाओं की आवश्यकता नहीं है। इसलिए मैं अब जो देख रहा हूं वह ग्रैडल को बताने का एक तरीका है कि उसे उसी निर्भरता का उपयोग करना चाहिए runtime से संबंधित compile (जो वैसे भी डिफ़ॉल्ट है), लेकिन उनमें से कुछ को छोड़कर।

क्या इसे प्राप्त करने का एक छोटा तरीका है, या क्या मुझे इसके लिए सभी निर्भरताओं को सूचीबद्ध करना होगा runtime भी?

उत्तर:

उत्तर № 1 के लिए 1

यह चारों ओर का दूसरा तरीका है: ग्रूवी की सकर्मक निर्भरताएँ उत्पन्न होती हैं, जो संकलन के लिए सामान्य रूप से आवश्यक नहीं होती हैं (सिवाय इसके कि ग्रूवी संकलक की ज्ञात सीमा के कारण, वे कभी-कभी कर रहे हैं), लेकिन वे निश्चित रूप से क्रम में आवश्यक हैं। हालाँकि, यह यहाँ संकलन निर्भरता को अनुकूलित करने के लिए सार्थक नहीं है, इसलिए बस Groovy निर्भरता की घोषणा करते रहें compile निर्भरताएं (जो स्वचालित रूप से उन्हें बनाती हैं runtime निर्भरता के रूप में अच्छी तरह से)। ग्रूवी परीक्षण निर्भरता को जोड़ा जाना चाहिए testCompile विन्यास।