spring - स्प्रिंग बूट मावेन-अचूक-प्लगइन चलाने में विफल रहता है ClassNotFoundException org.apache.maven.surefire.booter.orkedBooter




spring-boot maven-surefire-plugin (4)

2.12.4 से 3.0.0-M1 तक मावेन-अचूक-प्लगइन को अपडेट करना मेरे लिए काम किया। प्रोजेक्ट ने स्पष्ट रूप से प्लगइन का उपयोग नहीं किया, इसलिए मुझे एक नया प्लगइन निर्भरता जोड़ना पड़ा।

<plugins>
   ...
   <plugin>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>3.0.0-M1</version>
   </plugin>
   ...
</plugins>

रनिंग मावेन (3.5.2) स्प्रिंग बूट 2.0.2 का निर्माण। कृपया आवेदन करें (वेब ​​आश्रितों के साथ वेब आरम्भकर्ता द्वारा उत्पन्न) मावेन -अचूक-प्लगइन को निष्पादित करने में विफल रहता है:

त्रुटि: मुख्य वर्ग org.apache.maven.surefire.booter.orkedBooter को ढूंढ या लोड नहीं कर सका

इसके कारण: java.lang। ClassNotFoundException : org.apache.maven.surefire.booter ForkedBooter

ये क्यों हो रहा है? क्या यह बूट + अचूक एकीकरण में समस्या है = बग?

संदर्भ के लिए, निर्भरताएँ प्रासंगिक लगती हैं:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.2.RELEASE</version>
    <relativePath/>
</parent>
...
<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
</dependency>
...
<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
</dependency>
...
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

मेरे लिए, समाधान के रूप में mvan चलाने के लिए था

_JAVA_OPTIONS=-Djdk.net.URLClassPath.disableClassPathURLCheck=true mvn clean compile package

अन्य विचार (मावन तर्क सूची में सिस्टम की संपत्ति देते हुए, pom.xml , settings.xml में विभिन्न परिवर्तन) काम नहीं करते थे।

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

हाल ही में एक ही JDK और मावेन संस्करणों के साथ डेबियन (बस्टर) समस्या से प्रभावित नहीं दिखते हैं, लेकिन उबंटू (xenial) ने किया।

this जवाब से सटीक समाधान आ रहा है।


समस्या के लिए समाधान स्प्रिंग बूट के useSystemClassLoader maven-surefire-plugin परिभाषा को ओवरराइड करने और उपयोग के लिए सेट useSystemClassLoader गया था। अधिक जानकारी के लिए अचूक डॉक्स पढ़ें

<build>
    <plugins>
        ...
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <useSystemClassLoader>false</useSystemClassLoader>
            </configuration>
        </plugin>
    </plugins>
</build>

<useSystemClassLoader>false</useSystemClassLoader> द्वारा प्रदान किए गए <useSystemClassLoader>false</useSystemClassLoader> समाधान ने मेरे अचूक परीक्षणों को चलाने की अनुमति दी, लेकिन मेरे कुछ स्प्रिंग बूट एकीकरण परीक्षणों में कक्षा लोडिंग को तोड़ दिया।

निम्नलिखित मावेन-अचूक-प्लगइन विन्यास ने मेरे लिए काम किया:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <argLine>-Djdk.net.URLClassPath.disableClassPathURLCheck=true</argLine>
    </configuration>
</plugin>






maven-surefire-plugin