找不到 SpringApplicationConfiguration:错误的 spring-boot-starter-test 内容?

新手上路,请多包涵

在 Maven 中出现编译错误:

 [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 似乎存在 jar:

在此处输入图像描述

但是,该 jar 中没有任何已编译的类。只有 META-INF 目录:

在此处输入图像描述

这是设计使然吗?我在哪里可以得到包含 SpringApplicationConfiguration 类的 jar 来让 Maven 开心?

这是我的 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>

原文由 Simeon Leyzerzon 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 490
2 个回答

spring-boot-starter-test 就像所有其他 Spring Boot 启动器一样,实际上只是一个 pom,它可以传递地引入许多其他依赖项。它只有一个 jar 来保持一些不喜欢 pom-only 依赖的构建系统快乐。

看起来您已将应用程序从 Spring Boot 1.4 升级到 Spring Boot 1.5。 Spring Boot 1.5 删除了许多在 1.4 中被弃用的类,包括 org.springframework.boot.test.SpringApplicationConfiguration

我建议回到 Spring Boot 1.4.4.RELEASE 并修复所有弃用警告。然后,您应该能够毫无困难地升级到 Spring Boot 1.5.1.RELEASE。

原文由 Andy Wilkinson 发布,翻译遵循 CC BY-SA 3.0 许可协议

在您的版本中, @SpringApplicationConfiguration 注释不再存在。新的注释是:

 @RunWith(SpringRunner.class)

@SpringBootTest(classes = YourApplicationMainClass.class)

@WebAppConfiguration

原文由 Mohamed 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进