webentwicklung-frage-antwort-db.com.de

SpringApplicationConfiguration nicht gefunden: Fehlerhafter Spring-Boot-Starter-Test-Inhalt?

Kompilierungsfehler in Maven erhalten:

[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /C:/prototypes/demo-sse-spring-boot-master/src/test/Java/com/cedric/demo/sse/SseDemoApplicationTests.Java:[6,37] package org.springframework.boot.test does not exist
[ERROR] /C:/TITAN/demo-sse-spring-boot-master/src/test/Java/com/cedric/demo/sse/SseDemoApplicationTests.Java:[10,2] cannot find symbol
  symbol: class SpringApplicationConfiguration
[INFO] 2 errors 
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------

Maven Repo scheint das Glas dabei zu haben:

enter image description here

egal, in welchem ​​Glas sich keine kompilierten Klassen befinden. nur META-INF dir:

enter image description here

Ist das beabsichtigt? Woher bekomme ich das Glas mit der SpringApplicationConfiguration Klasse, um Maven glücklich zu machen?

Hier sind die relevanten Teile meiner pom.xml:

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.1.RELEASE</version>
        <relativePath/>
        <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <Java.version>1.8</Java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <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-devtools</artifactId>
        </dependency>

        <dependency>
            <groupId>org.webjars.bower</groupId>
            <artifactId>jquery</artifactId>
            <version>2.1.3</version>
        </dependency>

        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>bootstrap</artifactId>
            <version>3.3.1</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.4</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
19

spring-boot-starter-test, wie alle anderen Spring Boot-Starter, ist eigentlich nur ein Pom, der eine Reihe anderer Abhängigkeiten transitiv einbezieht. Es hat nur ein Glas, um einige Build-Systeme, die keine POM-only-Abhängigkeiten mögen, glücklich zu machen.

Sie haben anscheinend eine Anwendung von Spring Boot 1.4 auf Spring Boot 1.5 aktualisiert. Spring Boot 1.5 entfernt eine Reihe von Klassen, die in 1.4 veraltet waren, einschließlich org.springframework.boot.test.SpringApplicationConfiguration.

Ich würde empfehlen, zu Spring Boot 1.4.4.RELEASE zurückzukehren und alle Verfallswarnungen zu korrigieren. Sie sollten dann problemlos auf Spring Boot 1.5.1.RELEASE aktualisieren können.

18
Andy Wilkinson

In Ihrer Freilassung der @SpringApplicationConfiguration Anmerkung existiert nicht mehr. Die neuen Anmerkungen sind:

@RunWith(SpringRunner.class)

@SpringBootTest(classes = YourApplicationMainClass.class)

@WebAppConfiguration
76
Mohamed

Da der Fehler auf das Upgrade von Spring Boot von 1.4 auf 1.5 zurückzuführen ist, muss (von unten) beachtet werden, dass mehrere neue Klassen, die in 1.4 eingeführt wurden, einige der vorhandenen Klassen verworfen haben und in 1.5 endgültig entfernt wurden. Einzelheiten hierzu finden Sie unter: Versionshinweise zu Spring Boot

Zitiert von der Website (bearbeitet):

Darüber hinaus versucht Spring Boot 1.4 (und höher), die verschiedenen Möglichkeiten zu rationalisieren und zu vereinfachen, mit denen ein Spring Boot-Test ausgeführt werden kann. Sie sollten Folgendes migrieren, um die neue Anmerkung @SpringBootTest zu verwenden:

Von @SpringApplicationConfiguration(classes=MyConfig.class) bis @SpringBootTest(classes=MyConfig.class)

Von @ContextConfiguration(classes=MyConfig.class, loader=SpringApplicationContextLoader.class) bis @SpringBootTest(classes=MyConfig.class)

Von @IntegrationTest bis @SpringBootTest(webEnvironment=WebEnvironment.NONE)

Von @IntegrationTest mit @WebAppConfiguration bis @SpringBootTest(webEnvironment=WebEnvironment.DEFINED_PORT) (or RANDOM_PORT)

Von @WebIntegrationTest bis @SpringBootTest(webEnvironment=WebEnvironment.DEFINED_PORT) (or RANDOM_PORT)

Tipp Während Sie Tests migrieren, möchten Sie möglicherweise auch alle @RunWith(SpringJUnit4ClassRunner.class) - Deklarationen durch besser lesbare @RunWith(SpringRunner.class) von Spring 4.3 ersetzen. .

16
VanagaS