2013-06-22 11 views
20

मेरे पास एक (प्रतीत होता है) सरल मैवेन समस्या है जिसे मैं हल नहीं कर सकता। मेरी पोम में मैं एक openrdf-तिल के लिए निर्भरता इस तरह निर्दिष्ट किए हैं:मेवेन संकलन: पैकेज मौजूद नहीं है

<dependency> 
    <groupId>org.openrdf.sesame</groupId> 
    <artifactId>sesame-runtime</artifactId> 
    <version>2.7.2</version> 
</dependency> 

ग्रहण से परियोजना चल रहा है अच्छी तरह से काम करता है, मैं भी एक runnable जार फ़ाइल को निर्यात कर सकते हैं। दुर्भाग्यवश, मैं इसे cmd-line maven के माध्यम से ठीक से काम करने के लिए नहीं मिल सकता। एक जार का निर्माण करने के लिए, मैं अपने पोम के लिए निम्न जोड़ लिया है:

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <configuration> 
       <descriptorRefs> 
        <descriptorRef>jar-with-dependencies</descriptorRef> 
       </descriptorRefs> 
       <archive> 
        <manifest> 
         <mainClass>foo.bar.Cli</mainClass> 
        </manifest> 
       </archive> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

संकलन निम्न त्रुटियों के साथ विफल: जैसे ही मैं पोम के संकलन प्लग-इन जोड़ते रूप

.../PLDReducer.java:[25,29] package org.openrdf.rio.rdfxml does not exist 
.../PLDReducer.java:[27,33] package org.openrdf.sail.nativerdf does not exist 
.../LowPLDReducer.java:[25,29] package org.openrdf.rio.rdfxml does not exist 
.../Cli.java:[23,33] package org.openrdf.sail.nativerdf does not exist 
.../SchemaBuilder.java:[30,33] package org.openrdf.sail.nativerdf does not exist 
.../RepoQuerier.java:[23,33] package org.openrdf.sail.nativerdf does not exist 
.../PLDReducer.java:[78,44] cannot find symbol 

अजीब, और प्रोजेक्ट सेटिंग्स अपडेट करें, ग्रहण कैंट अब भी संकलित नहीं लग रहा है। मैंने अपनी भंडार की जांच की है, और सभी तिल फाइलें वहां हैं।

mvn --version इस उत्पादन देता है:

Apache Maven 2.2.1 (rdebian-8) 
Java version: 1.6.0_27 
Java home: /usr/lib/jvm/java-6-openjdk-amd64/jre 
Default locale: en_US, platform encoding: UTF-8 
OS name: "linux" version: "3.8.0-25-generic" arch: "amd64" Family: "unix" 

मैं देख रहा हूँ कि यह एक JRE को इंगित करने लगता है, लेकिन मेरे Googling संकेत दिया कि मैं एक त्रुटि दिखाई देगी यदि संकलक ही नहीं मिला था। मेरे पास pasted the complete POM here है, यदि यह किसी भी मदद की है।

क्या मुझे कुछ भी याद आ रही है? मुझे अपने पीओएम में कोई त्रुटि नहीं मिल रही है।

<dependency> 
    <groupId>org.openrdf.sesame</groupId> 
    <artifactId>sesame-rio-api</artifactId> 
    <version>2.7.2</version> 
</dependency> 

इसके अलावा मैं documentation about how to use the lib.

+0

क्या आप 'एमवीएन क्लीन पैकेज' का पूरा आउटपुट दिखा सकते हैं? – khmarbaise

+0

[यहां के साथ स्विच है] (http://pastebin.com/zg24L8rS) और [यहां -एक्स स्विच के साथ] (http://pastebin.com/A5G613LL) – feob

+0

ऐसा लगता है कि आप पैकेज नामों का उपयोग कर रहे हैं (अनुमानतः आपके आयात भाग में) जो मौजूद नहीं है। क्या आपको वास्तव में थूज़ पैकेज की आवश्यकता है? इससे कक्षाओं का उपयोग करना? आईडीई (जैसे एक्लिप्स?) के साथ आयात भाग को साफ किया? क्या आप 'PLDReducer.java' जैसी स्रोत कोड फ़ाइलों में से एक दिखा सकते हैं? – khmarbaise

उत्तर

7

आप अपने निर्माण के लिए निम्न निर्भरता जोड़ने के लिए उचित पोम कॉन्फ़िगरेशन की पुष्टि करना मैं अपने स्थानीय एम 2 रिपोजिटरी से जार को हटाकर इस समस्या को हल करने में सक्षम था, जब मैने परीक्षण चलाते समय इसे फिर से डाउनलोड करने के लिए मेवेन को मजबूर कर दिया।

+0

धन्यवाद, यह वास्तव में चाल है! लेकिन यदि यह अतिरिक्त मॉड्यूल आवश्यक है, तो यह प्रोजेक्ट कैसे संकलित करता है और ग्रहण के भीतर से चलता है? मेरे पास lib फ़ोल्डर या इसी तरह के कोई जार नहीं है। इसके अलावा, लिंक किया गया दस्तावेज़ बहुत अच्छा लगता है, मैं अभी तक इस पर नहीं आया है! – feob

+11

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

+0

आपने किस प्रकार का दायरा परिभाषित किया? – khmarbaise

0

सुनिश्चित नहीं हैं कि अगर कोई फ़ाइल भ्रष्टाचार या क्या था, लेकिन बाद में एक गहरी नज़र डालना सुझाव है:

3

आप अपनी निर्भरता में <scope> टैग शामिल नहीं करते हैं।

<dependency> 
    <groupId>org.openrdf.sesame</groupId> 
    <artifactId>sesame-runtime</artifactId> 
    <version>2.7.2</version> 
    <scope> ... </scope> 
</dependency> 

"गुंजाइश" टैग Maven निर्माण का जो स्तर पर अपनी निर्भरता की जरूरत है बताता है: आप इसे जोड़ते हैं, तो अपनी निर्भरता की तरह कुछ हो जाता है। अंदर दिए गए मानों के उदाहरण "परीक्षण", "प्रदत्त" या "रनटाइम" हैं (आपके पोम में उद्धरण छोड़ दें)। मुझे आपकी निर्भरता नहीं पता है इसलिए मैं आपको नहीं बता सकता कि कौन सा मूल्य चुनना है। कृपया मेवेन प्रलेखन और अपनी निर्भरता के दस्तावेज़ीकरण से परामर्श लें।

+0

बस एक ही समस्या थी और मैंने को सभी एक साथ हटा दिया और इसने परियोजना को सफलतापूर्वक बनाया। –

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