मावेन-प्रबंधित निर्भरताओं के लिए ग्रहण से जुड़ी स्रोत जार फाइलें प्राप्त करें


176

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

मैं मावेन को स्वचालित रूप से स्रोत और जावदॉक संलग्नक कैसे प्राप्त कर सकता हूं और उन्हें ग्रहण के साथ ठीक से पंजीकृत कैसे कर सकता हूं?


संबंधित प्रश्न पूछें कि मावेन का उपयोग करते समय हमेशा स्रोतों और जावदोक को कैसे डाउनलोड किया जाए: stackoverflow.com/questions/5780758/…
प्रवाह

जवाबों:


226

मुझे यकीन है कि ग्रहण के लिए m2eclipse मावेन प्लगइन - दूसरे तरीके के आसपास - ऐसा कर सकते हैं। आप इसे स्रोत फ़ाइलों और javadoc दोनों को स्वचालित रूप से आपके लिए डाउनलोड करने के लिए कॉन्फ़िगर कर सकते हैं।

यह विंडो> प्राथमिकताएं> मावेन में जाकर "डाउनलोड आर्टवर्क सोर्सेस" और "डाउनलोड आर्टवर्क जावाडॉक" विकल्पों की जाँच करके प्राप्त किया जाता है।

मावेन वरीयताओं का स्क्रीनशॉट


हां, मैंने बस m2eclipse का उपयोग करना शुरू कर दिया है, और यह इस (और कई अन्य चीजों की मावेन) कार लेता है।
थिलो

44
इन उत्तरों में से कोई भी उत्तर नहीं है। उन्हें वोट क्यों दिया जा रहा है? मैं नेविगेटर दृश्य में प्रोजेक्ट को नियंत्रित करके और "एम 2 मावेन" -> "डाउनलोड स्रोत" को चुनकर स्रोतों को डाउनलोड करने में सक्षम था। मैं तब लिंक पर क्लिक कर सकता था (मैक) वर्ग पर लिंक किए गए स्रोत पर नेविगेट करने के लिए।
एलेक्स वर्डेन

8
ऐसा लगता है कि यदि संकलित JAR को पहले ही डाउनलोड किया जा चुका है, तो ग्रहण स्रोत / Javadoc JAR को तुरंत प्राप्त करने का प्रयास नहीं करेगा। ऐसा प्रतीत होता है कि पीओएम पर निर्भरता वाले एक पीओएम को संशोधित करना, जिसके लिए मैं ग्रहण में स्रोत / जावदोक चाहता हूं और पीओएम को निर्भरता के लिए स्रोत / जावदोक को डाउनलोड करता है, भले ही संकलित जार पहले से ही मैवेन रिपॉजिटरी कैश में हो।
फ्रांसिस गगन

13
@Francis - उपरोक्त बदलाव के बाद अपने प्रोजेक्ट पर राइट क्लिक करें और "Maven> Update Project ..." का चयन करें, इससे आपके सोर्स जार डाउनलोड हो जाएंगे।
कार्बोनटैक्स

3
सभी निर्भरता के लिए स्रोत डाउनलोड करने के बजाय, क्या यह निर्भरता के साथ ही पोम में निर्दिष्ट करके कुछ निर्भरता के लिए बस डाउनलोड करना संभव है, निर्भरता टैग या कुछ समान में कुछ आंतरिक टैग के माध्यम से बी हो सकता है?
नैनोसॉफ्ट

127
mvn eclipse:eclipse -DdownloadSources=true

या

mvn eclipse:eclipse -DdownloadJavadocs=true

या आप दोनों झंडे जोड़ सकते हैं, जैसा कि स्पेंसर के बताते हैं।

इसके अतिरिक्त, =trueभाग की आवश्यकता नहीं है, इसलिए आप उपयोग कर सकते हैं

mvn eclipse:eclipse -DdownloadSources -DdownloadJavadocs

8
अथवा दोनों! mvn ग्रहण: ग्रहण -Downloadsource = true -DdownloadJavadocs = true यह केवल तभी काम करता है जब आप जिस स्रोत से डाउनलोड कर रहे हैं, उसे स्रोत और javadocs प्रदान किए गए थे। कभी-कभी उन्हें स्प्रिंग की तरह प्रदान नहीं किया जाता है।
स्पेंसर कोरमोस

2
वसंत अब उन्हें प्रदान करता है।
रॉबिन ग्रीन

ध्यान दें कि यह उत्तर 10 वर्ष से अधिक पुराना है। ग्रहण कॉन्फ़िगरेशन फ़ाइलें बनाने के बजाय ग्रहण में m2e प्लगइन का उपयोग करें।
Thorbjørn Ravn Andersen

71

इस काम के अन्य उत्तर, लेकिन अगर आप कमांड लाइन के तर्कों को याद रखने से बचना चाहते हैं, तो आप बस अपने pom.xml के maven-eclipse-plugin सेक्शन में डाउनलोडसाउट्स और downloadJavadocs कॉन्फिग को भी जोड़ सकते हैं।

<project>
    ...
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-eclipse-plugin</artifactId>
                <configuration>
                    <downloadSources>true</downloadSources>
                    <downloadJavadocs>true</downloadJavadocs>
                    ... other stuff ...
                </configuration>
            </plugin>
        </plugins>
    </build>
    ...
</project>

क्या मैं इसे प्रति-निर्भरता स्तर पर सेट कर पाऊंगा?
मार्कोरोसी

@marcorossi क्षमा करें, मुझे यकीन नहीं है कि यह संभव है।
overthink

मैं आश्वस्त नहीं हूं कि यह उचित है। निश्चित रूप से स्रोत और Javadoc डाउनलोड सेटिंग्स एक उपयोगकर्ता वरीयता है, न कि परियोजना-स्तर की चिंता? फ़ाइल में इसे कैसे रखा जाए, इसके लिए नीचे मेरा जवाब देखें settings.xml
डंकन जोन्स

मुझे यह चेतावनी मिली: [WARNING] 'build.plugins.plugin.version' के लिए org.apache.maven.plugins: maven-eclipse-plugin गायब है। यह तय करने के लिए कि आप कुछ इस तरह से नीचे जोड़ सकते हैं <विरूपण साक्ष्य>: <संस्करण> 2.9 </ संस्करण>
क्रिश्चियन

16

मैं प्रोजेक्ट pom.xmlफ़ाइल में स्रोत / जावदोक डाउनलोड सेटिंग्स नहीं रखना पसंद करता हूं क्योंकि मुझे लगता है कि ये उपयोगकर्ता प्राथमिकताएं हैं, परियोजना गुण नहीं। इसके बजाय, मैंने उन्हें अपनी settings.xmlफ़ाइल में एक प्रोफ़ाइल में रखा :

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

  <profiles>
    <profile>
      <id>sources-and-javadocs</id>
      <properties>
        <downloadSources>true</downloadSources>
        <downloadJavadocs>true</downloadJavadocs>
      </properties>
    </profile>
  </profiles>

  <activeProfiles>
    <activeProfile>sources-and-javadocs</activeProfile>
  </activeProfiles>
</settings>

1
मैंने इस सेटिंग को कॉपी कर लिया है .xml .m2 में हालांकि सूत्रों और javadocs की नकल नहीं हो रही है। सीएलआई पर निम्नलिखित आदेश स्पष्ट रूप से स्रोतों और javadocs पर लाता है: mvn निर्भरता: स्रोतों पर निर्भरता: समाधान -Dclassifier = javadoc कोई विचार?
अरुण गुप्ता

शायद यह काम करता है, लेकिन कृपया समझाएं, इन विन्यास सेटिंग्स को खोजने के लिए मावेन एक्लिप्स प्लगइन कैसे माना जाता है? आपको लगता है कि यह वैश्विक गुणों के लिए दिखता है?
क्रिसिनटाउन

9

प्रोजेक्ट पर राइट क्लिक करें -> maven -> डाउनलोड सोर्स


3
सभी ने कहा कि इसे कैसे सक्षम किया जाए न कि स्रोतों को डाउनलोड करने के लिए मावेन प्राप्त किया जाए! विकल्प को सक्षम करने के बाद
चाड

8

यदि स्रोत जार स्थानीय रिपॉजिटरी में हैं और आप ईक्लिप्स मावेन का उपयोग कर रहे हैं, तो स्रोत स्वचालित रूप से संलग्न हो रहे हैं। आप mvn dependency:sourcesकिसी दिए गए प्रोजेक्ट के लिए सभी स्रोत जार डाउनलोड करने के लिए चला सकते हैं । हालांकि यह सुनिश्चित नहीं है कि प्रलेखन के साथ भी ऐसा ही कैसे किया जाए।


इसने मेरे लिए काम किया। दौड़ने के बाद mvn dependency:sources, मैं स्रोत पढ़ने के लिए ग्रहण में क्लिक करने में सक्षम था। M2e के साथ कोई अतिरिक्त मैकिंग आवश्यक नहीं है। आपके द्वारा किए गए javadocs को डाउनलोड करने के लिए mvn dependency:sources -Dclassifier=javadoc
मैट गेसेल

4

यदि आप meclipse do का उपयोग कर रहे हैं

विंडो -> मावेन -> आर्टवर्क डाउनलोड करें स्रोत (चेक का चयन करें)

(यदि आपको अभी भी अटैच सोर्स विंडो मिलती है, तो अटैच फाइल बटन पर क्लिक करें और अटैच सोर्स विंडो को बंद कर दें। अगली बार जब आप सोर्स को देखने की कोशिश करेंगे तो यह सही सोर्स को खोलेगा)

Surajz



3

मैंने विंडोज़ की कोशिश की-> प्रीफ़ ..-> मेवेन लेकिन यह काम नहीं कर रहा था। इसलिए मैंने कमांड मावेन एक्लिप्स के साथ एक नया क्लास पाथ बनाया: एक्लिप्स -डाउनलोड्स सोर्स = एक बार कार्यक्षेत्र को सही और रिफ्रेश किया। voila .. सूत्र जुड़े थे।

सोर्स जार की एंट्री क्लास पाथ में उपलब्ध है। इसलिए नए बिल्ड ने समस्या को हल किया ...


आपके समाधान के साथ, मैं चुन सकता हूं और किस मॉड्यूल के लिए स्रोत प्राप्त करना चाहता हूं। बस उस मॉड्यूल में cd और "mvan ग्रहण: स्वच्छ ग्रहण: ग्रहण -DdownloadSources = true -T4 -Dmaven.test.skip = true -Denforcer.skip" सच "के साथ बनाएँ। धन्यवाद :)
विस्वाजनजानंद

2

मेरे ग्रहण के संस्करण में m2Eclipse के साथ हेलिओस नहीं है

window --> maven --> Download Artifact Sources (select check)

खिड़की के नीचे केवल "नई खिड़की", "नया संपादक" "खुला परिप्रेक्ष्य" आदि है।

यदि आप अपने प्रोजेक्ट पर राइट क्लिक करते हैं, तो maven -> डाउनलोड स्रोत चुनें

कुछ नहीं हुआ। कोई स्रोत डाउनलोड नहीं किया गया, कोई पोम फाइलें अपडेट नहीं हुईं, कोई विंडो नहीं पूछती कि कौन से स्रोत हैं।

ग्रहण के बाहर mvan xxx करना खतरनाक है - कुछ कमांडें m2ecilpse के साथ काम नहीं करती हैं - मैंने ऐसा किया था कि एक बार और पूरी परियोजना को खो दिया था, ग्रहण को फिर से करना और खरोंच से शुरू करना था।

इम अभी भी सर्विलेट-अपी जैसे बाहरी जार के स्रोत को खोजने और उपयोग करने के लिए एक्लिप्स और मावेन प्राप्त करने का एक रास्ता खोज रहा है।


2

स्रोत / javadoc को शामिल करने के लिए maven-eclipse-plugin के लिए pom बदलना बस pom में जोड़े जाने वाली नई निर्भरता के लिए लागू होता है। यदि हमें मौजूदा निर्भरता के लिए आवेदन करने की आवश्यकता है, तो हमें mvan निर्भरता: स्रोतों को चलाना होगा। मैंने इसकी जाँच की।


2

Eclipse-Maven वरीयता में डाउनलोड स्रोत / javadoc की जाँच करना, कभी-कभी पर्याप्त नहीं होता है। इवेंट में मावेन उन्हें किसी कारण से डाउनलोड करने में विफल रहा (नेटवर्क ब्लैकआउट?), मावेन कुछ/ .lastUpdated फ़ाइलें बनाता है, फिर कभी डाउनलोड नहीं करेगा। मेरा अनुभवजन्य समाधान यह था कि विरूपण साक्ष्य निर्देशिका को .m2 / रिपॉजिटरी से हटा दिया जाए, और ग्रहण स्रोत को फिर से डाउनलोड स्रोत / javadoc चेक किया गया और स्टार्टअप पर चेक किए गए प्रोजेक्ट्स को अपडेट करें। कार्यक्षेत्र को फिर से शुरू करने के बाद, शायद कुछ परियोजनाओं को त्रुटि में चिह्नित किया जा सकता है, जबकि ग्रहण की प्रगति डाउनलोड हो रही है, फिर किसी भी त्रुटि को हटा दिया जाएगा। हो सकता है कि यह प्रक्रिया इतनी "वैज्ञानिक" न हो, लेकिन मेरे लिए यह सफल नहीं था।


1

मैंने स्रोत और javadocs डाउनलोड करने के लिए maven-eclipse प्लगइन में पोम कॉन्फ़िगरेशन जोड़ा है, लेकिन मुझे लगता है कि यह नई निर्भरता के लिए होगा, मौजूदा लोगों के लिए नहीं।

मौजूदा निर्भरता के लिए, मैंने "मावेन डिपेंडेंसीज़" के नीचे पैकेज एक्सप्लोरर में खोजा और कॉमन-लैंग-2.5.जर पर राइट-क्लिक किया, मावेन का चयन किया। स्रोत डाउनलोड करें और ... कुछ भी नहीं हुआ (कोई प्रगति पट्टी या संकेत नहीं है कि यह कुछ भी कर रहा था)। हालांकि, यह डाउनलोड किया, जैसा कि मैं अब कॉमन्स-लैंग में स्रोत पर कूदने में सक्षम हूं।


1

पम में सेटअप का उपयोग करने का सुझाव दिया:

<project>
...
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-eclipse-plugin</artifactId>
            <configuration>
                <downloadSources>true</downloadSources>
                <downloadJavadocs>true</downloadJavadocs>
                ... other stuff ...
            </configuration>
        </plugin>
    </plgins>
</build>
...

पहले मैंने सोचा कि यह अभी भी javadoc और स्रोतों को संलग्न नहीं करेगा (जैसा कि मैंने उस -DownloadSource विकल्प के साथ असफल प्रयास किया है)।

लेकिन आश्चर्य - .classpath फ़ाइल POM संस्करण का उपयोग करते समय अपने स्रोतों और javadoc को संलग्न कर रही है!


1

इंडिगो (और शायद Helios) के लिए ऊपर वर्णित चेकबॉक्स यहां स्थित हैं:

विंडो -> प्राथमिकताएं -> मैवेन


0

मेरे पास एक समान समस्या थी, और मेरे लिए सबसे अच्छा काम करने वाले समाधान को स्रोत को उसी कोड में संकलित कोड के रूप में शामिल करना था (इसलिए जार में दी गई निर्देशिका दोनों Foo.javaऔर शामिल होगी Foo.class)। ग्रहण स्वचालित रूप से संकलित कोड के साथ स्रोत को जोड़ता है, और स्वचालित रूप से स्रोत से JavaDoc प्रदान करता है। जाहिर है, यह केवल तभी उपयोगी होता है जब आप कलाकृतियों को नियंत्रित करते हैं।


0

प्रॉपर्टीज़ को या तो प्रोजेक्ट लेवल या यूज़र प्रॉपर्टीज़ लेवल पर सेट करने के बाद, कृपया एक Maven -> अपडेट प्रोजेक्ट (फ़ोर्स अपडेट) करें। यह स्रोतों को डाउनलोड करता है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.