2012-01-17 15 views
15

में जावा के रूप में नहीं माना जा रहा है, मैं एक ऐसे प्रोजेक्ट पर काम कर रहा हूं जिसमें कई अलग-अलग मेवेन प्रोजेक्ट हैं। मैं इन परियोजनाओं पर जुनीट परीक्षण का एक गुच्छा कर रहा हूं, और आमतौर पर यह अच्छी तरह से चला जाता है। मैं ग्रहण खोलता हूं, पैकेज एक्सप्लोरर में राइट क्लिक करें-> आयात करें ... मौजूदा मेवेन प्रोजेक्ट्स और मैं प्रोजेक्ट जुर्माना आयात करने में सक्षम हूं। मैं बना सकता हूं, src/test/java पर ड्रिल करें ... फ़ाइल पर राइट क्लिक करें और ज्यूनिट टेस्ट के रूप में रन करें। हर अब और फिर भी, मैं इसे काम पर नहीं ला सकता। यदि मैं रन के रूप में राइट क्लिक करने के लिए राइट क्लिक करता हूं, तो मुझे एस्पेक्टजे/जावा एप्लिकेशन मिलता है। कोई जुनीट परीक्षण नहीं है।मैवेन प्रोजेक्ट को एक्लिप्स

मैंने देखा कि प्रोजेक्ट फ़ोल्डर के बगल में आइकन में केवल एक एम और एक फ़ोल्डर आइकन है, जबकि काम करने वाली परियोजनाओं के साथ, एक फ़ोल्डर, एम, और एजे है। मैंने यह भी देखा है कि यह सामान्य जावा प्रोजेक्ट्स जैसे फ़ाइलों को अपने पैकेज में सॉर्ट नहीं करता है। ऐसा लगता है कि यह परियोजना को एस्पेक्टजे परियोजना के रूप में नहीं मान रहा है। मैं इस परियोजना को जावा प्रोजेक्ट के रूप में पहचानने के लिए ग्रहण कैसे प्राप्त करूं?

+0

क्या आप समझ सकते हैं कि उन दो परियोजनाओं के बीच क्या अंतर है, जहां आप रनएजुनिट प्राप्त करते हैं और वह एक जहां आपको यह नहीं मिलता है? pom.xml शायद जवाब है। – milan

उत्तर

1

उन परियोजनाओं के लिए pom.xml फ़ाइल की जांच करें जो AspectJ प्रकृति (परियोजना पर एजे) नहीं प्राप्त करते हैं। क्या वे AspectJ-Maven प्लगइन खो रहे हैं? वे की तरह एक अनुभाग होना चाहिए: Maven/AJDT project in Eclipse

4

यह (यदि आप जावा ईई उपयोग कर रहे हैं) Eclipse project facet गुण पर निर्भर करता है, मैं सुझाव है कि आप सही परियोजना संपत्तियों पर क्लिक करें:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>aspectj-maven-plugin</artifactId> 
    <executions> 
     <execution> 
     <goals> 
      <!-- use this goal to weave all your main classes --> 
      <goal>compile</goal> 
     </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <complianceLevel>1.6</complianceLevel> 
    </configuration> 
</plugin> 

इसके अलावा उनके प्रश्न पर एक नज़र और देखें कि आपके प्रोजेक्ट के लिए कौन सा पहलू परिभाषित किया गया है।

+0

मुझे लगता है कि यह बहुत से लोगों और अन्य मुद्दों के लिए एक समाधान है। उन्हें इस उत्तर में रीडायरेक्ट करेगा। बहुत बहुत धन्यवाद –

7

Project ->Properties ->Project Facets पर राइट-क्लिक करें, फिर अपने मामले (उदाहरण के लिए जावा) के लिए लागू होने वाले सभी पहलुओं का चयन करें।

1

मैंने एक सहकर्मी से बात की और मैं समस्या को ठीक करने में सक्षम था। मैंने एक्लिप्स से डिस्क हटा दी (डिस्क से नहीं) और तुरंत मैवेन आयात फिर से किया और अब यह जादुई रूप से काम करता है।

ऐसा लगता है कि pom.xml के साथ कोई त्रुटि हुई है, खासकर यदि मूल संस्करण गलत था, तो मैवेन प्रोजेक्ट आयात/ठीक से नहीं बनाया जाता है। एक बार जब मैंने पीओएम में समस्याओं को ठीक कर दिया, तो परियोजना बिना किसी समस्या के ठीक हो जाएगी लेकिन यह अभी भी केवल एक मेवेन प्रोजेक्ट था। एक बार मैंने इसे हटा दिया और इसे पुनः आयात किया, फिर उसने इसे मैवेन/एस्पेक्टजे प्रोजेक्ट के रूप में माना।

1- समस्याग्रस्त परियोजना के pom.xml खोलें:

+2

आप इस प्रश्न को बंद करने के लिए अपने स्वयं के जवाब स्वीकार कर सकते हैं। – kriegaex

2

मैं एक ही समस्या है और नीचे मेरे मामले में यह हल चरणों का सामना करना पड़ रहा था।

2-ओवरव्यू टैब में, आर्टिफैक्ट/पैकेजिंग सेटिंग्स की जांच करें।

3- यदि यह "पोम" पर सेट है तो इसे "जार" में बदलें।

4- अपने परिवर्तनों को सहेजें और फिर ग्रहण से परियोजना को हटाएं और इसे फिर से आयात करें।

आशा है कि मदद करता है!

26

कई मौजूदा उत्तरों को काम करना चाहिए, लेकिन जावा पहलू जोड़ने का सुझाव देने वाले लोग केवल तभी काम करेंगे जब आपकी परियोजना पहले से ही (या आप इसे रूपांतरित करना चाहते हैं) एक पहलूदार प्रकृति है, और यह सुझाव देता है कि आप अपना pom.xml बदलते हैं केवल तभी काम करेगा जब आप अपनी परियोजना को एक मैवेन प्रोजेक्ट के रूप में दोबारा आयात करें।

यदि आप अपने मौजूदा प्रोजेक्ट को "ठीक" करना चाहते हैं, यानी।इसे जावा प्रकृति को बिना किसी रूपांतरित रूप में परिवर्तित किए और बिना हटाने और पुनः आयात किए, अपनी .project फ़ाइल (बाहरी रूप से, या ग्रहण में नेविगेटर दृश्य के साथ संपादित करें) के रूप में संपादित करें, क्योंकि यह आपके पैकेज एक्सप्लोरर में दिखाई नहीं देगा) और जावा जोड़ें मौजूदा Maven बिल्डर/प्रकृति के बिल्डर और जावा प्रकृति:

<?xml version="1.0" encoding="UTF-8"?> 
<projectDescription> 
    <name>yourprojectname</name> 
    <comment></comment> 
    <projects> 
    </projects> 
    <buildSpec> 
     <!-- add this build command --> 
     <buildCommand> 
      <name>org.eclipse.jdt.core.javabuilder</name> 
      <arguments> 
      </arguments> 
     </buildCommand> 
     <!-- this would've already been there --> 
     <buildCommand> 
      <name>org.eclipse.m2e.core.maven2Builder</name> 
      <arguments> 
      </arguments> 
     </buildCommand> 
    </buildSpec> 
    <natures> 
     <!-- add this nature --> 
     <nature>org.eclipse.jdt.core.javanature</nature> 
     <!-- this would've already been there --> 
     <nature>org.eclipse.m2e.core.maven2Nature</nature> 
    </natures> 
</projectDescription> 

नोट अलग पूंजीकरण (javabuilder लेकिन maven2Builder, javanature लेकिन maven2Nature)।

जैसे ही आप सहेजते हैं, इसे स्वचालित रूप से फिर से बनाना चाहिए। आप (स्वयं किसी भी स्रोत फ़ोल्डर जोड़ने के लिए हो सकता है Project properties ->Java Build Path ->Source टैब -।>Add Folder...

+2

मुझे बस प्रोजेक्ट फ़ाइलों को हटाने और पोम्स को फिर से आयात करने में भी यह पाया गया - मैं यह नहीं समझ सकता कि यह इस खराब स्थिति में कैसे मिलता है। – bacar

+0

यह मेरे लिए काम किया। – jayanth

+0

लेकिन अब मेरे सभी आयात और मेरे पास 4000 से अधिक बिल्ड त्रुटियां हैं। – demongolem

3

मैं एक ही समस्या (ग्रहण करने के लिए, परियोजना एक जावा एक के रूप में इलाज नहीं है pom.xml आयात करने के बाद का सामना करना पड़ा, और प्रोजेक्ट बिल्डर्स प्रॉपर्टी में केवल "मेवेन प्रोजेक्ट बिल्डर" है, लेकिन ग्रहण लुना में कोई "जावा बिल्डर" नहीं है।

".settings" फ़ोल्डर और ".project" फ़ाइल को हटाने के बाद मेवेन प्रोजेक्ट को दोबारा आयात नहीं किया गया वर्कस्पेस स्विच के बाद पुन: आयात करने के लिए मेरे लिए काम किया।

0

एमवीएन ग्रहण: ग्रहण जो परियोजना

0

मेरे पांच सेंट ... मेरे मामले में मैं था 'जावा' परियोजना की प्रकृति 'खोने' हमेशा के लिए जावा प्रकृति & अन्य संपत्तियों जोड़ देगा आवश्यक .project फ़ाइलें पैदा करेगा क्योंकि पोम फ़ाइल 'कान के रूप में पैकेज' पर सेट किया गया था। यद्यपि कोई त्रुटि या चेतावनी संदेश नहीं था, जो कि अच्छा होगा। जैसे ही मैंने पैकेज को 'जार' में बदल दिया, मैं प्रोजेक्ट की प्रकृति को जावा पर सेट कर सकता था और यह जारी है।

0

मैंने इस धागे में वर्णित सभी दृष्टिकोणों को भी आजमाया। केवल संशोधित। प्रोजेक्ट पर्याप्त नहीं है क्योंकि मेवेन लाइब्रेरी का उपयोग परियोजना के निर्माण के लिए नहीं किया जाएगा और परियोजना निर्माण विफल हो जाएगा। एमवीएन ग्रहण: ग्रहण वास्तव में m2e का उपयोग किए बिना एक लंबा और बेकार .classpath बना देगा।

एक नया जावा प्रोजेक्ट बनाने का सबसे आसान तरीका है, इसे मेवेन प्रोजेक्ट में परिवर्तित करें और इस नई परियोजना के लिए प्रोजेक्ट और क्लासपाथ खोलें। फिर आयातित मेवेन परियोजना के लिए समान परिवर्तन करें।

.project फ़ाइल के लिए महत्वपूर्ण परिवर्तन वर्णित किया गया है, लेकिन आदेश की तरह इस .classpath फ़ाइल

<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> 
     <attributes> 
      <attribute name="maven.pomderived" value="true"/> 
     </attributes> 
    </classpathentry> 
    <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> 
     <attributes> 
      <attribute name="maven.pomderived" value="true"/> 
     </attributes> 
    </classpathentry> 

पहलुओं का उपयोग में होना चाहिए ग्रहण कुछ में Maven निर्भरता का उपयोग करने के लिए इस में एक विकल्प नहीं है मामला क्योंकि पहलुओं के साथ ग्रहण m2e और मेवेन निर्भरताओं का उपयोग नहीं करता है। फिर पहलुओं के साथ निर्भरता मैन्युअल रूप से प्रबंधित की जानी चाहिए।

मैंने ग्रहण 4.6.2 नियॉन के साथ यह सब करने की कोशिश की।

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