Java 无法解析导入org.springframework.test.context.junit4.SpringRunner

Java 无法解析导入org.springframework.test.context.junit4.SpringRunner,java,spring-boot,Java,Spring Boot,从现在开始,我一直在尝试解决这个问题。但我仍然没有解决它。我只是从spring.io下载了一个spring项目,并将其作为一个Maven项目导入到eclipseide。之后,我遇到了上述错误 无法解析导入org.springframework.test.context.junit4 我在下面附上了我的代码,以及完整的pom.xml内容 package com.Ticket.Booking.TicketBooking; import org.junit.Test; import org.juni

从现在开始,我一直在尝试解决这个问题。但我仍然没有解决它。我只是从spring.io下载了一个spring项目,并将其作为一个Maven项目导入到eclipseide。之后,我遇到了上述错误

无法解析导入org.springframework.test.context.junit4

我在下面附上了我的代码,以及完整的pom.xml内容

package com.Ticket.Booking.TicketBooking;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;//I got the error in this line

@RunWith(SpringRunner.class)//Also in this line too.
@SpringBootTest
public class TicketBookingApplicationTests {

    @Test
    public void contextLoads() {
    }

}
这是我的pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>

http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0

<groupId>com.Ticket.Booking</groupId>
<artifactId>Ticket-Booking</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>Ticket-Booking</name>
<description>Project For Book Movie Tickets Online.</description>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.0.BUILD-SNAPSHOT</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <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-starter-data-rest</artifactId>
</dependency>

</dependencies>

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

<repositories>
    <repository>
        <id>spring-snapshots</id>
        <name>Spring Snapshots</name>
        <url>https://repo.spring.io/snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

<pluginRepositories>
    <pluginRepository>
        <id>spring-snapshots</id>
        <name>Spring Snapshots</name>
        <url>https://repo.spring.io/snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </pluginRepository>
    <pluginRepository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </pluginRepository>
</pluginRepositories>
com.Ticket.Booking
订票
0.0.1-快照
罐子
订票
在线预订电影票的项目。
org.springframework.boot
spring启动程序父级
2.0.0.1构建快照
UTF-8
UTF-8
1.8
org.springframework.boot
弹簧靴起动器执行器
org.springframework.boot
spring启动程序数据mongodb
org.springframework.boot
弹簧启动装置
org.springframework.boot
SpringBootStarterWeb
org.springframework.boot
弹簧起动试验
测试
org.springframework.boot
弹簧启动启动器数据rest
org.springframework.boot
springbootmaven插件
春季快照
春季快照
https://repo.spring.io/snapshot
真的
春季里程碑
春季里程碑
https://repo.spring.io/milestone
假的
春季快照
春季快照
https://repo.spring.io/snapshot
真的
春季里程碑
春季里程碑
https://repo.spring.io/milestone
假的


请帮我解决这个问题。作为一名学生,这对我来说非常重要。

可能是范围,设置为
测试

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

org.springframework.boot
弹簧起动试验
测试

请确保包含
SpringRunner
的类位于您的
/src/test/java
文件夹中。

我认为缺少依赖项:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>4.3.10.RELEASE</version>
    <scope>test</scope>
</dependency>

org.springframework
弹簧试验
4.3.10.1发布
测试

我有最新的eclipse和最新的junit 4.12 jar,但我仍然用它来解决这个问题。我最终解决了它。按照以下步骤操作:

  • 关闭在eclipse中创建的maven项目并关闭eclipse或STS工具
  • 转到Maven存储库:
  • C:\Users\.m2\repository\org\springframework\

    并删除springframework文件夹中的所有内容

  • 现在打开eclipse/STS工具,然后打开您的项目
  • 项目将自动生成,错误将消失
  • 如果没有,那么
  • 右键单击project->Maven->Update project..->检查原力 更新并单击“确定”


    为什么要使用构建快照

    在pom.xml中,您有

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.BUILD-SNAPSHOT</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    
    
    org.springframework.boot
    spring启动程序父级
    2.0.0.1构建快照
    
    使用版本

    <version>2.0.4.RELEASE</version>
    
    2.0.4.0版本
    
    或其他发布版本


    除非确实有必要,否则不要重写库版本。

    不应使用spring boot导入springframework依赖项,如果需要,也不应重写这些版本。如果可能的话,最好使用启动器。这很好。错误已经消失了。但现在我无法清理编译包。它说有测试失败。@HKhan如果这根据需要,您的项目设置或依赖项有问题,没有在.m2 repo中正确下载。在spring boot应用程序中获取spring runner不需要这样做,因此不建议这样做。@Darrenforsyth我删除了整个.m2 repo并重新添加了它。因此,现在它可以正常工作了。感谢您的帮助ide。我已经在上面的代码中将作用域设置为test。我使用的SpringRunner类也在/src/test/java文件夹中。但我还是得到了和以前一样的错误。实际上我也遇到了同样的问题,通过将类移动到test文件夹,它得到了修复。@HKhan也许你需要右键单击你的项目,然后转到maven,然后单击Update项目。还有清理你的项目。这对我来说是固定的。尤其是最后一个
    */java/
    文件夹,这是我所缺少的。你是个天才。谢谢你,这修复了我的一系列错误。尽管我直接去强制更新。现在我像专业、半专业一样进行单元和集成测试:)