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>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>

मैं इसे अपने POM के शीर्ष ( <project> नोड के अंदर) से जोड़ने के बाद अपने POM से मावेन-अचूक-प्लगइन को हटाने में सक्षम था।

<prerequisites>
    <maven>3.6.1</maven>
</prerequisites>

मुझे क्यों लगता है कि यह सही उत्तर है?

  • यह मावेन के संस्करण को निर्दिष्ट करता है जो मावेन का उपयोग करने की सिफारिश करता है: https://maven.apache.org/download.cgi
  • जब आप mvn versions:display-plugin-updates चलाते mvn versions:display-plugin-updates यह दिखाता है कि यह सुपर-पोम से maven-Surefire-plugin 3.0.0-M3 ले रहा है, जो अब तक इस मुद्दे को ठीक करने के लिए लगता है।
  • आपको स्वतंत्र रूप से आगे बढ़ने के लिए अलग-अलग प्लगइन संस्करणों का प्रबंधन करने की आवश्यकता नहीं है। बस आपका न्यूनतम मावेन संस्करण जो सुपर-पोम संस्करण को नियंत्रित करता है।






maven-surefire-plugin