2014-11-02 7 views
5

Maven-भूमि में, कभी भी मैं बस एक विशेष पोम फ़ाइल के लिए सकर्मक निर्भरता नीचे खींचने के लिए चाहते हैं, मैं सिर्फ एक खोल खोल लेते हैं, जहां पोम स्थित है पर नेविगेट करें और चलाएँ:मैवेन की "प्रति-निर्भरता" के बराबर हैडल?

mvn dependency:copy-dependencies 

और उछाल, मेवेन वर्तमान में एक target/ निर्देशिका बनाता है और उस स्थान पर सभी पारगमन-प्राप्त किए गए JARs को स्थान देता है।

अब मैं को ग्राडल पर स्विच करने के लिए कोशिश कर रहा हूं, लेकिन ग्रैडल में एक ही सुविधा नहीं है। तो मैं पूछता हूं: क्या ग्रैडल के पास मेवेन के copy-dependencies के बराबर है? यदि हां, तो क्या कोई उदाहरण प्रदान कर सकता है? यदि नहीं, तो क्या अन्य देवताओं को ग्रैडल समुदाय में एक सार्थक योगदान मिलेगा?

उत्तर

9

Gradle में copy-dependencies का कोई समकक्ष नहीं है लेकिन यहाँ एक काम है कि करता है यह:

apply plugin: 'java' 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile 'com.google.inject:guice:4.0-beta5' 
} 

task copyDependencies(type: Copy) { 
    from configurations.compile 
    into 'dependencies' 
} 

यह एक योगदान करने के लिए सार्थक है? जैसा कि आप देख सकते हैं कि यह करना वास्तव में आसान है, इसलिए मुझे ऐसा नहीं लगता है।

+5

किसी भी ग्रैडल नवागंतुकों के लिए, इस कोड स्निपेट को लें और इसे अपनी मशीन पर कहीं भी 'build.gradle' फ़ाइल में डाल दें। फिर एक खोल खोलें, उस स्थान पर नेविगेट करें जहां आपने 'build.gradle' बनाया है और' gradle copyDependencies' टाइप करें। ग्रैडल निष्पादित करने के बाद, 'निर्भरता' निर्देशिका इसके अंदर सभी ट्रांजिटिव डीपी के साथ दिखाई देगी। अब आप जो भी निर्भरताओं को पसंद करते हैं, उन्हें 'build.gradle' संपादित कर सकते हैं, और प्रत्येक बार' gradle copyDependencies 'चलाने से पहले' निर्भरता 'को हटाना सुनिश्चित करें। – smeeb

+0

और यदि आप रनटाइम निर्भरताओं की प्रतिलिपि बनाना चाहते हैं तो आप 'से' लक्ष्य को 'configurations.runtime' – JasonM1

+0

* संकलन * दोनों * रनटाइम * और * संकलन * के लिए प्रतिलिपि बनायेंगे। – Opal