Uruchamianie Maven (3.5.2) Budowanie Spring boot 2.0.2 właśnie:

Błąd: Nie można znaleźć ani ładować głównej klasy org.apache.maven.surifire.booter.forkedbooter

Spowodowane przez: java.lang. classnotFoundException : org.apache.maven.surifire.booter. forkedbooter

Dlaczego to się dzieje? Czy jest to problem w integracji Boot + Surefire = błąd?

W odniesieniu do odniesienia zależności, które wydają się istotne, są:

<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>
58
jediz 3 czerwiec 2018, 01:21

6 odpowiedzi

Najlepsza odpowiedź

Obejście problemu było zastąpienie definicji {X0} {X0}} maven-surefire-plugin useSystemClassLoader. false. Czytaj Dokumenty Surefire Więcej informacji

<build>
    <plugins>
        ...
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <useSystemClassLoader>false</useSystemClassLoader>
            </configuration>
        </plugin>
    </plugins>
</build>
126
jediz 2 czerwiec 2018, 22:21

Rozwiązanie <useSystemClassLoader>false</useSystemClassLoader> Dostarczone przez JEDIS umożliwiło uruchamianie moich badań Surefire, ale złamał ładowanie klas w niektórych moich testach integracji rozruchowych.

Pracowała dla mnie następująca konfiguracja wtyczki wtykowej Maven-Surefire:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <argLine>-Djdk.net.URLClassPath.disableClassPathURLCheck=true</argLine>
    </configuration>
</plugin>
19
Andreas Presthammer 31 październik 2018, 12:52

Dla mnie rozwiązanie było uruchomienie MVN jako

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

Inne pomysły (podając nieruchomość systemu do listy argumentów Maven, różne zmiany w pom.xml, settings.xml) nie działały.

Mimo to nie zawierał dokładnego rozwiązania, również Ta odpowiedź była dla mnie bardzo pomocna, aby wyjaśnić, że to jest niefortunną współpracą z dwóch niezależnych, samodzielnych nieszkodliwych błędów w JDK Ubuntu JDK i wtyczki Surefire Maven.

Ostatnio Debian (Buster) z tymi samymi wersjami JDK i Maven nie wydaje się problemem, ale Ubuntu (Xenial) zrobił.

Dokładne rozwiązanie przychodzi z To odpowiedź.

Aktualizacja z przyszłości: Dzięki Debian Buster jest wszystko, a ten obejście nie jest już potrzebne.

11
peterh - Reinstate Monica 19 luty 2020, 11:50

Aktualizacja Wtyczki Maven-Surefire z 2.12.4 do 3.0.0-m1 pracowała dla mnie. Projekt nie użył wyraźnie wtyczki, więc musiałem dodać nową zależność wtyczki.

<plugins>
   ...
   <plugin>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>3.0.0-M1</version>
   </plugin>
   ...
</plugins>
10
jediz 1 luty 2019, 13:36

Udało mi się zdjąć wtyczkę Maven-Surefire z mojego POM po dodaniu tego na górę mojego POM (w węźle <project>)

<prerequisites>
    <maven>3.6.3</maven>
</prerequisites>

Dlaczego myślę, że to właściwa odpowiedź?

  • Określa wersję Maven, że Maven zaleca używanie: https://maven.apache.org/download.cgi.
  • Po uruchomieniu mvn versions:display-plugin-updates pokazuje, że biorąca maven-serefire-plugin 3.0.0-m3 od Super-Pom, który tak daleko wydaje się mieć ten problem.
  • Nie musisz zarządzać poszczególnymi wersjami wtyczek niezależnie od samodzielnego. Tylko twoja minimalna wersja maven, która kontroluje wersję super-POM.
1
GlenPeterson 19 luty 2020, 20:02

Dodawanie tego do wtyczki Maven-Surefire-Plugin I rozwiązałem problem:

<plugin>    
  <groupId>org.apache.maven.plugins</groupId>   
  <artifactId>maven-surefire-plugin</artifactId>    
  <configuration>
    <forkCount>0</forkCount>
  </configuration>
</plugin>
1
the Tin Man 23 marzec 2020, 21:58