Intellij解决Spring Kotlin的依赖性

时间:2018-08-05 19:30:23

标签: spring spring-boot intellij-idea kotlin

Intellij给我全新的Kotlin / spring项目到处都是错误,我无法从IDE构建或运行该项目。

但是,如果我从命令行执行此操作,则不会出现任何问题,并且可以构建和运行该应用程序。

build.gradle

'classpath' in 'org.gradle.api.artifacts.dsl.DependencyHandler' cannot be applied to '(groovy.lang.GString)'
'apply' in 'org.gradle.api.plugins.PluginAware' cannot be applied to '(['plugin':java.lang.String])'

Controller

Cannot access class 'java.lang.String'. Check your module classpath for missing or conflicting dependencie

Type mismatch.
Required:
java.lang.String
Found:
kotlin.String

关于可能是什么问题的任何想法? 我尝试过Kotlin multiplatform JVM type mismatch in InteliJ,但似乎无法解决问题。

更新:

清除gradle缓存,重新安装Intellij,从start.spring.io创建并选择Gradle和Kotlin的Import项目。

使用默认的gradle包装器和项目jdk(路径表示jre)?给我一个错误。打开gradle设置只会打开文件资源管理器。

enter image description here

使用默认的gradle包装器和计算机本地JDK时,上面的依赖项存在相同的问题。

2 个答案:

答案 0 :(得分:1)

取消设置KOTLIN_HOME和您在环境中可能具有的其他与Kotlin或Java相关的设置(检查env,取消设置unset NAME。)

然后杀死仍在运行的任何Gradle守护进程(pkill -f GradleDaemon)并从终端测试您的Gradle构建。如果一切顺利,请除去.idea目录;重新启动IDEA,确保在没有杂散环境变量的情况下 运行它(例如,从您未设置它们的终端启动idea.sh);并重新导入您的项目,并选择使用默认的Gradle包装器。

如果您需要使用独立的Kotlin版本(例如通过SDKMAN安装),请考虑将SDKMAN激活行从外壳初始化文件(对于Bash为.bashrc)中取出,并放入独立的脚本(例如,{{1 }}),这也会更改您的shell提示符(在Bash中为~/bin/sdkman),以提醒您您已进入SDKMAN管理的CLI会话。

答案 1 :(得分:0)

如果您在IntelliJ中设置了自己的模块,并且您认为由于正在执行Kotlin(Maven)项目,则应该将SDK设置为Kotlin,就会出现此问题。错了!

问题显示在第一张图像中。项目SDK设置为Kotlin。

Kotlin as the project SDK compiler

将其更改为Java。大概任何8种以上的Java都足够了。

Java as the project SDK compiler

这可以解决IDE错误和编译器错误。