2017-12-07 31 views
6

मेरी build.gradle में, मैं प्लगइन जोड़ा ~/.m2/भंडारमैडन रिपोजिटरी के बजाय स्थानीय ग्रैडल रिपोजिटरी फाइल-2.1 में ग्रैडल जार द्वारा संकलित कैसे स्थापित करें?</p> <pre><code>apply plugin: 'maven' </code></pre> <p>फिर "स्थापित Gradle" मैं Maven भंडार में हुई जार कॉपी कर सकते हैं का उपयोग कर:

लेकिन, मेरा ग्रैडल रिपोजिटरी ~/.gradle/कैश/मॉड्यूल -2/फाइल-2.1 में रहता है। मैं इस भंडार में जार कैसे स्थापित कर सकता हूं?

+0

यह आपके लिए महत्वपूर्ण क्यों है जहां यह स्थापित हो जाता है? ग्रैडल मेवेन रेपो – robjwilkins

+0

का उपयोग करेगा आप ऐसा क्यों करना चाहते हैं? ग्रैडल निर्भरता कैश मैवेन रिपोजिटरी के समान नहीं है। यह प्रश्न [XY समस्या] से ग्रस्त है (https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)। – mkobit

उत्तर

2

क्या काम मेरे लिए gradle install -Dmaven.repo.local=the/path/of/the/folder है को हल करने के लिए स्थानीय भंडार की जाँच करेगा।

मुझे नहीं पता कि आप किस आईडीई का उपयोग कर रहे हैं लेकिन ग्रहण में आप एक नया रन कॉन्फ़िगरेशन जोड़ सकते हैं, ग्रैडल टेक में install और प्रोग्राम तर्क -Dmaven.repo.local=the/path/of/the/folder में जोड़ें।

0

mavenLocal() इस तरह हल हो गई है:

खजाने Maven {:

आदेश एक गैर मानक स्थानीय Maven भंडार का उपयोग करने के लिए, आपको निम्न विन्यास अपने build.gradle में उपयोग कर सकते हैं { यूआरएल '/ उपयोगकर्ताओं/manuelj/अपाचे/Maven/भंडार' } }

+0

मदद नहीं की, कृपया ध्यान दें कि मेरा लक्ष्य गैर-मानक भंडार का उपयोग नहीं कर रहा है, मेरा लक्ष्य –

+0

प्रकाशित कर रहा है, मैं अपना उत्तर अपडेट कर रहा हूं। –

0

अपने logback निर्भरता के साथ एक जार फ़ाइल बनाने के लिए एक build.gradle नमूना। mavenlocale() का उपयोग कर प्लगइन लागू होते हैं: जावा का अर्थ

प्लगइन लागू होते हैं: 'ग्रहण'

संस्करण = '1.0'

sourceCompatibility = 1.7

लक्ष्य संगतता = 1.7

// सभी निर्भरताओं के साथ एक एकल जार बनाएं

कार्य वेटजेर (प्रकार: जार) {

manifest { 

    attributes 'Implementation-Title': 'Gradle Jar File Example', 

     'Implementation-Version': version, 

     'Main-Class': 'com.mkyong.DateUtils' 
} 
baseName = project.name + '-all' 

from { configurations.compile.collect { it.isDirectory() ? it : 

zipTree (यह)

}

} जार }

// जाओ Maven केंद्रीय भंडार से निर्भरता

खजाने {

mavenCentral() 
साथ

}

// परियोजना निर्भरता

निर्भरता {

compile 'ch.qos.logback:logback-classic:1.1.2' 

}

संदर्भ create a Jar file along with its logback dependencies.

+0

जहां परिणामस्वरूप जार स्थापित किया जाएगा? –

1

आप कैश से छेड़छाड़ पर जोर देते हैं, तो आपका सर्वश्रेष्ठ दांव लिखना है एक शेल स्क्रिप्ट जो कैश में नवीनतम JAR मैन्युअल रूप से प्रतिस्थापित करेगी।

कारण यह है कि ग्रैडल इस कार्यक्षमता के साथ अंतर्निहित नहीं है, क्योंकि ग्रैडल "स्थानीय कैश" की सख्त अर्थ में "स्थानीय भंडार" की धारणा का उपयोग करता है, जो मैवेन द्वारा उपयोग की जाने वाली "स्थानीय भंडार" के विपरीत है।

अंतर यह है कि आपको फ़ाइलों को मैन्युअल रूप से स्थानीय कैश में सहेजना नहीं चाहिए।

अपनी समस्या को हल करने के लिए अनुशंसित तरीका: मान लें कि प्रोजेक्ट ए प्रोजेक्ट बी की निर्भरता है। फिर आप प्रोजेक्ट ए में publishToMavenLocal कमांड को डिप्टीेंसी रीफ्रेश करने के लिए कॉल कर सकते हैं। परियोजना बी के gradle.build में mavenLocal() भंडार जोड़ें, ताकि हर बार जब आप परियोजना बी का निर्माण, Gradle जब निर्भरता ए

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