【发布时间】:2017-07-24 01:43:12
【问题描述】:
最近我创建了一个使用 IntelliJ IDEA 和 Gradle 进行依赖管理的新项目。解决项目所需的所有依赖项并运行它后,我收到以下错误:
java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication
at com.some.fancy.name.Application.main(Application.java:13)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.SpringApplication
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 6 more
问题仅出现在已解决依赖项中的类上(我也尝试了使用来自 Guava 的 Cache 的简单 main 程序)。导致错误的类如下:
@SpringBootApplication
public class Application {
public static void main(String... args) {
SpringApplication.run(Application.class, args);
}
}
所有字段都显示正确的颜色(注释为黄色,没有红色),IntelliJ 在External Libraries 目录中具有所有已解析的依赖项。我正在使用绿色的“运行”箭头来启动项目。
从命令行使用 gradle 时,创建一个 fat jar 然后一切正常。我已经尝试过“使缓存/重启无效”,从存储库中拉出几次项目,清除了 gradle 缓存,手动删除了所有依赖项,尝试使用社区版、终极版运行它,运行已经运行的旧项目前一段时间(现在不工作)。
是否与将 IntelliJ IDEA 更新到 2016.3.4,构建 163.12024.16 有某种关系?
【问题讨论】:
标签: intellij-idea gradle