Maven में निष्पादन का उपयोग करते समय NoClassDefFoundError

अपडेट

Based on the comments of others and my own tests, this appears to only be a problem with Maven 3.1.1 - I've logged a bug with codehaus


I've created the smallest maven POM file I can to highlight the problem (see below).

मैं एक ईमेल सर्वर प्लगइन (एकीकरण परीक्षण के लिए) का उपयोग कर रहा हूँ। मैं प्लगइन लॉन्च नहीं कर सकता कोई समस्या नहीं:

mvn emailserver:run
[INFO] --- emailserver-maven-plugin:1.1.1:run (default-cli) @ project ---
[INFO] Starting Greenmail mail server...
[INFO] Started Greenmail mail server
[INFO] Waiting for command from client

हालांकि, मैंने एकीकरण-परीक्षण जीवन चक्र से पहले चलाने के लिए प्लगइन को कॉन्फ़िगर किया है। इस तरह से चलाने पर, मुझे एक NoClassDefFoundError मिलता है:

mvn integration-test
Exception in thread "Thread-1" java.lang.NoClassDefFoundError: com/icegreen/greenmail/util/ServerSetup

जब मैं क्या हो रहा है यह देखने के लिए -X के साथ मैवेन निष्पादित करता हूं, दोनों मामलों में यह वही निर्भरता वृक्ष दिखाता है जहां तक ​​मैं देख सकता हूं, इसलिए मुझे कुछ नुकसान हुआ है कि मैं क्यों ' मुझे एक अपवाद मिल रहा है जिसे इसे लाइफसाइकिल चरणों के माध्यम से लॉन्च किया गया है। उम्मीद है कि कोई मदद कर सकता है!


    4.0.0

    com.mytest
    project
    jar
    1.0
    Test Project

    
        
            
                com.btmatthews.maven.plugins
                emailserver-maven-plugin
                
                    emailserver
                    10025
                    greenmail
                    13000
                    false
                
                
                    
                        run-mail
                        
                            run
                        
                        pre-integration-test
                        
                            true
                        
                    
                    
                        stop-mail
                        
                            stop
                        
                        post-integration-test
                    
                
            
        
    

मेवेन की जानकारी:

> mvn -v
Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 16:22:22+0100)
Maven home: /opt/apache-maven
Java version: 1.7.0_45, vendor: Oracle Corporation
Java home: /opt/jdk1.7.0_45/jre
Default locale: en_IE, platform encoding: UTF-8
OS name: "linux", version: "3.11.0-13-generic", arch: "amd64", family: "unix"
3
@Vic mvn -v आपको क्या देता है?
जोड़ा लेखक John Farrelly, स्रोत
@Chriki तो आपको अपवाद नहीं मिला? मैंने अपना पूरा रेपो हटा दिया और बस सुनिश्चित करने के लिए पुनः प्रयास किया - मेरे लिए एक ही अपवाद :(
जोड़ा लेखक John Farrelly, स्रोत
@Chriki आप क्या मेवेन का संस्करण चल रहे हैं?
जोड़ा लेखक John Farrelly, स्रोत
@विक हम्म मैंने 3.0.5 डाउनलोड किया और यह मेरे लिए भी काम किया - तो यह एक स्वर्ग 3.1.1 समस्या होना चाहिए ...
जोड़ा लेखक John Farrelly, स्रोत
मैं उस प्लगइन का डेवलपर हूं और पुष्टि कर सकता हूं कि इसकी एथर पर प्रत्यक्ष निर्भरता नहीं है। मैंने मैवेन 3.1.1 और जावा 8 के साथ अपने पीओएम का सफलतापूर्वक परीक्षण किया है। क्या आप पुष्टि कर सकते हैं कि आप किस प्लगइन का उपयोग कर रहे थे? प्लगइन के पहले संस्करणों में स्टार्ट-अप के दौरान दौड़ की स्थिति थी। लेकिन यह संस्करण 1.1.1 में तय किया जाना चाहिए था।
जोड़ा लेखक Brian Matthews, स्रोत
मैंने maven इंस्टॉल किया है जैसा कि त्रुटियों के बिना है ... चल रहा है mvn एकीकरण-परीक्षण सर्वर के बिना स्पष्ट रूप से बंद किए बिना भी काम किया।
जोड़ा लेखक Vic, स्रोत
जावा 1.6.38 के साथ एमवीएन 3.0.4, वास्तव में ... जावा 1.7.25 के साथ चल रहा है साथ ही काम करता है
जोड़ा लेखक Vic, स्रोत
3.1 राज्यों के लिए जोहानफैरली मेवेन प्रलेखन "एपीआई परिवर्तन और पैकेज स्थानांतरण के संबंध में ग्रहण एथर में महत्वपूर्ण परिवर्तन संभवतः एथर पर निर्भर प्लगइन के साथ समस्याएं पैदा करेगा।", शायद यह मामला है
जोड़ा लेखक Vic, स्रोत
चल रहा है mvn एकीकरण-परीक्षण सफलतापूर्वक मेरे लिए भी बनाता है। बाद में कोई डेमॉन नहीं चल रहा है, हालांकि, जहां तक ​​मैं देख सकता हूं। मैं मेवेन 3.0.4 और जावा 1.7.0_25 का उपयोग कर रहा हूं।
जोड़ा लेखक Chriki, स्रोत
@ जॉन फ़ैरेलली नो, मुझे कोई अपवाद नहीं मिला है। यह भी प्रतीत होता है कि मैवेन ने कम से कम सभी com.btmatthews * और com.icegreen। * निर्भरताओं को कुछ मिनट पहले पहली बार डाउनलोड किया है; तो मुझे आपके द्वारा किए गए वही संस्करणों का उपयोग करना चाहिए।
जोड़ा लेखक Chriki, स्रोत

1 उत्तर

NoClassDefFoundError का अर्थ है कि कक्षा संकलन समय पर कक्षापथ में मौजूद है, लेकिन यह रनटाइम में कक्षापथ में मौजूद नहीं है।

तो ग्रहण के माध्यम से परियोजना को साफ करें, .class फ़ाइलें फिर से उत्पन्न हो जाएंगी। मेवेन की मदद से फिर से मेवेन प्रोजेक्ट चलाएं

0
जोड़ा