2010-08-21 9 views
8

मैंने ग्रहण में एक जावा परियोजना बनाने के लिए m2eclipse स्थापित किया।मैंने m2eclipse के साथ त्रुटियां बनाई हैं लेकिन कमांड लाइन पर maven2 के साथ नहीं - क्या मेरा m2eclipse गलत कॉन्फ़िगर किया गया है?

मैं इस प्रकार परियोजना आयातित:

Import-> 
Maven-> 
Existing Maven Projects-> 
Import Maven Projects-> 
- Select root directory 
- Select pom file 
- Click Finish 

यकीन m2eclipse वास्तव में परियोजना का निर्माण किया गया था तो मुझे खुद लक्ष्य निर्देशिका को नष्ट कर दिया और यकीन है कि यह m2eclipse द्वारा फिर से बनाया गया था बनाया है और यह किया गया था। लेकिन मैवेन के कमांड लाइन संस्करण के विपरीत जो पूरी तरह से सब कुछ बनाता है, m2eclipse स्रोत कोड में बड़ी संख्या में बिल्ड त्रुटियों को छोड़ देता है।

क्या यह संभव है कि मैंने m2eclipse को ठीक से कॉन्फ़िगर नहीं किया? मैं यह कैसे देखूँगा?

This is a github link to the project मैं निर्माण करने की कोशिश कर रहा हूं। मुझे this line पर @ ओवरराइड बिल्ड त्रुटियां मिल रही हैं। यह कहता है "विधि बनाने के लिए न्यूटोकन को एक सुपरक्लास विधि ओवरराइड करना चाहिए"।

+0

त्रुटियों के कुछ उदाहरण पोस्ट करें (जिस तरह से m2eclipse डिफ़ॉल्ट रूप से मैवेन 3 के एम्बेडेड संस्करण का उपयोग करता है, यानी कमांड लाइन पर आपके जैसा ही संस्करण नहीं है)। लेकिन कुछ त्रुटियों को पोस्ट करें, हम माध्यम नहीं हैं :) –

+0

आप विस्तार से देखने के लिए मेवेन वरीयताओं में डीबग आउटपुट सक्रिय कर सकते हैं। मैं निर्भर करता हूं कि निर्भरताओं को केवल ताज़ा करने का प्रयास करें (प्रोजेक्ट-> maven-> निर्भर निर्भरता iirc पर राइट-क्लिक करें), शायद यह मदद करता है। ग्रहण के अंदर परियोजना को आप कैसे बना रहे हैं? क्या आप स्पष्ट रूप से एक मेवेन लक्ष्य/चरण का आह्वान करते हैं? यदि ऐसा है तो रन कॉन्फ़िगरेशन पोस्ट करें। –

+0

असल में, जहां तक ​​मैं कह सकता हूं, सभी त्रुटियों का कहना है "निकालें @ ओवरराइड एनोटेशन" -> "विधि x को सुपरक्लास विधि ओवरराइड करना चाहिए"। मैंने कोशिश की (प्रोजेक्ट-> maven-> निर्भर निर्भरताओं पर राइट-क्लिक करें) लेकिन इससे मदद नहीं मिली। सवाल के लिए, मैं प्रोजेक्ट का निर्माण कैसे कर रहा हूं, ठीक है मैंने अभी भी पोम फ़ाइल का उपयोग करके प्रोजेक्ट आयात किया है और माना है कि यह स्वचालित रूप से निर्मित होगा। वास्तव में, यह कहता है: ग्रहण कंसोल पर "मेवेन बिल्डर: AUTO_BUILD"। –

उत्तर

13

अद्यतन: समस्या ‘Must Override a Superclass Method’ Errors after importing a project into Eclipse में वर्णित एक जैसा ही होता है और यहाँ क्या स्वीकार किए जाते हैं जवाब का कहना है: (

ग्रहण जावा 1.5 दोषी है और आप इंटरफ़ेस तरीकों को लागू करने श्रेणियां होती हैं, जिसमें जावा 1.6 को @ ओवरराइड के साथ एनोटेट किया जा सकता है, लेकिन जावा 1.5 में केवल सुपरक्लास विधि ओवरराइड करने के तरीकों पर लागू किया जा सकता है)।

जावा 1.6 में कंपाइलर स्तर को बदलना समस्या को दूर कर देगा। ऐसा करने के लिए, संकलक प्लगइन विन्यास को संशोधित:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>2.1</version> 
    <configuration> 
    <source>1.6</source> 
    <target>1.6</target> 
    </configuration> 
</plugin> 

और परियोजना विन्यास को अद्यतन (परियोजना तो Maven वी अद्यतन परियोजना विन्यास पर राइट क्लिक करें) ग्रहण के तहत समस्या को हल करता है।

या 1.5 के साथ चिपके रहें लेकिन समस्याग्रस्त @ ओवरराइड एनोटेशन को हटा दें।

मुझे नहीं पता कि टेलर को जावा 1.5 कंपाइलर स्तर के साथ काम करने के तरीके कैसे मिलते हैं। और मेरा अनुमान है कि इस परियोजना को एक JDK के साथ कमांड लाइन पर निर्माण नहीं होगा 5.


लेकिन जो सब कुछ पूरी तरह से बनाया Maven का कमांड लाइन संस्करण के साथ विपरीत, m2eclipse की एक बड़ी संख्या को छोड़ देता है स्रोत कोड में त्रुटियां बनाएं।

यह कहना मुश्किल है कि उन "त्रुटियों" को देखे बिना क्या हो रहा है (क्या वे वास्तव में त्रुटियां हैं?)। कृपया कुछ निशान प्रदान करें।

क्या यह संभव है कि मैंने m2eclipse को ठीक से कॉन्फ़िगर नहीं किया? मैं यह कैसे देखूँगा?

एक अंतर यह है कि m2eclipse डिफ़ॉल्ट रूप से मेवेन 3 के एक एम्बेडेड संस्करण का उपयोग करता है जो संभवतया वही संस्करण नहीं है जिसे आप कमांड लाइन पर उपयोग करते हैं।आप विंडो वी पसंद वी Maven वी स्थापना के माध्यम से है कि बदल सकते हैं (और अपने खुद के स्थापना जोड़ने):

alt text

लेकिन जब मैं कमांड लाइन पर से ग्रहण के तहत एक ही संस्करण का उपयोग करने की सलाह देते हैं, इस समस्या की मूल वजह बहुत संभावना नहीं है, मैवेन 2 बिल्डों को बिना किसी समस्या के मेवेन 3 पर चलाना चाहिए।

+0

मैंने maven2 स्थापना में स्विच करने का प्रयास किया लेकिन, जैसा कि आपको संदेह था, इसका निर्माण त्रुटियों पर कोई प्रभाव नहीं पड़ा। लेकिन स्क्रीनशॉट के लिए धन्यवाद। मुझे नहीं पता था कि स्थापना को डिफ़ॉल्ट से स्विच करना इतना आसान था। –

+0

ऐसा लगता है कि राउल इस कोड के साथ एक ही समस्या का सामना कर रहा है। मैंने माना कि यह कुछ ऐसा था जो मैं कर रहा था। –

+0

नहीं, मेरे लिए काम नहीं करता है। –

1

मैंने कोड की जांच की। मुझे भी ठीक यही समस्या है। कोड बस टूटा हुआ प्रतीत होता है।

संपादित करें: यह निश्चित रूप से है। कक्षा com.jappstart.service.auth.UserDetailsServiceImpl कक्षा को देखें। यह public final UserDetails loadUserByUsername(final String username) विधि को ओवरराइड करना चाहता है लेकिन यह विधि कक्षा के कार्यान्वयन के इंटरफ़ेस में मौजूद नहीं है और इसमें कोई सुपरक्लास नहीं है।

संपादित करें: ठीक है, यह समझ में नहीं आता है कि यह मैवेन स्टैंडअलोन के साथ क्यों बनाता है। यह मेरे लिए भी काम करता है। बहुत अजीब। ऐसा लगता है कि निर्माण के साथ कुछ चल रहा है जो m2eclipse के साथ काम नहीं करता है।

संपादित करें: मुझे पूरा यकीन है कि कोड काम करता है क्योंकि बाइटकोड डाइटन्यूक्लियस प्लगइन द्वारा संशोधित किया जाता है। जब मैं प्रोजेक्ट को मैवेन बिल्ड (राइट-क्लिक-> रन-> मेवेन पैकेज) के रूप में चलाता हूं तो यह सफलतापूर्वक m2eclipse के साथ युद्ध बनाता है। तो मेरा अनुमान है कि समस्या m2eclipse मेवेन बिल्डर के साथ है।

+0

कोड की जांच के लिए धन्यवाद। मुझे खुशी है कि आप यह सत्यापित करने में सक्षम थे कि यह मैवेन स्टैंडअलोन के साथ काम करता है लेकिन m2eclipse के साथ नहीं।लेकिन, पास्कल की सलाह के आधार पर, मैंने अपने स्टैंडअलोन मेवेन इंस्टॉलेशन का उपयोग करने के लिए m2eclipse सेट किया है। तो इससे यह सब और रहस्यमय हो जाता है कि एक अंतर क्यों होगा। –

+0

मुझे संदेह है कि इसे डेटान्यूक्लियस प्लगइन के साथ करना है। यह प्लगइन कुछ बाइटकोड मैनिपुलेशन करने लगता है जो समझा सकता है कि "टूटा हुआ" कोड संकलित किया जा सकता है। मुझे समझ में नहीं आता है कि यह m2eclipse के साथ काम क्यों नहीं लगता है। –

1

ओवरक्साइड त्रुटियां दिखाई देंगी यदि ग्रहण 1.6 के बजाय जावा 1.5 का उपयोग करने के लिए कॉन्फ़िगर किया गया है। परियोजना गुणों की जांच करें।

+0

@ क्रिस क्या आपने मेरा जवाब क्रिस पढ़ा था? मैंने * सही * समाधान प्रदान किया (1.6 ** ** ** pom.xml में 'maven-compiler-plugin' को कॉन्फ़िगर करना)। यह जाने का तरीका है, m2eclipse pom.xml से सेटिंग्स प्राप्त करता है। और यह टेलर को क्या करना चाहिए, आयात के बाद किसी को आईडीई सेटिंग्स को बदलना नहीं चाहिए। –

+1

निश्चित रूप से, जब मुझे मौका मिलता है तो मैं पीओएम को 1.6 में बदल दूंगा (शायद कल शाम)। मेरी ग्रहण परियोजना सेटिंग्स 1.6 पर थी इसलिए मैंने कभी यह नहीं देखा। –

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