为什么我的IntelliJ IDEA项目没有找到这个导入?

时间:2017-07-15 18:40:49

标签: java spring intellij-idea gradle import

尝试按照此处的指南https://spring.io/guides/gs/rest-service/#scratch

这是我的Gradle文件

version '1.0'

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.3.RELEASE")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'

jar {
    baseName = 'gs-rest-service'
    version =  '0.1.0'
}

repositories {
    mavenCentral()
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.11'
    compile("org.springframework.boot:spring-boot-starter-web")
    testCompile('org.springframework.boot:spring-boot-starter-test')
    testCompile('com.jayway.jsonpath:json-path')
}

仅针对上下文,我的项目屏幕:

https://i.stack.imgur.com/m8aqE.png

由于某些原因,当我点击构建时,它似乎工作正常,但无论出于何种原因,它无法找到org.springframework文件,例如此文件中的导入:

package hello;

import java.util.concurrent.atomic.AtomicLong;
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class GreetingController {

    private static final String template = "Hello, %s!";
    private final AtomicLong counter = new AtomicLong();

    @RequestMapping("/greeting")
    public Greeting greeting(@RequestParam(value="name", defaultValue="World") String name) {
        return new Greeting(counter.incrementAndGet(),
                String.format(template, name));
    }
}

2 个答案:

答案 0 :(得分:3)

您是否在IDEA中更新了Gradle项目?

enter image description here

当您这样做时,您应该能够在"外部库"中找到所有必需的依赖项。列表。

enter image description here

编辑:由于某种原因,您的IDEA可能没有正确配置Gradle。您可以登入文件 - > 设置... - > 构建,执行,部署 - > 构建工具 - > Gradle 如果您的项目与Gradle正确关联:

enter image description here

您可以标记"使用自动导入"如果您想让Gradle自动导入所有依赖项。唯一的问题是它可能消耗大量资源并使IDE运行缓慢。它可能听起来不是一个方便的解决方案,但我认为,在需要时手动刷新项目效果更好。

我希望它有所帮助。

答案 1 :(得分:0)

尝试添加Maven依赖spring-web

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>

https://mvnrepository.com/artifact/org.springframework/spring-web/5.1.5.RELEASE