我正在使用Intellij开发一个基于Maven和JDK 8的新Kotlin项目。除了每个Maven重新导入编译目标之后,一切都很棒,因为某种原因,编译目标从1.8切换到1.6。
我真的尝试了所有的东西,从两个最好的答案到同一问题 (尽管来自Java ),但是对我来说都没有用。我也迁移到格拉德尔,希望能克服这个问题,但这也没有帮助。除了上面提到的这个问题,我浏览了很多论坛,这些建议总是和前面提到的答案一样。
因此,问题是,如何防止在重新导入后切换目标Java版本?
发布于 2018-10-20 12:10:31
因此,经过多次尝试和错误尝试之后,我发现这个想法选择了版本1.6,因为这是Kotlin的默认JVM目标版本,而且我还没有在pom.xml或build.gradle中的任何地方设置这个1.8个版本。如果没有定义这个版本,Idea显然会忽略项目设置并坚持默认设置。
这意味着解决方案是在kotlin插件中手动设置版本,但首先要确保您已经完成了在Java中处理相同问题的问题的公认答案中列出的所有内容。
现在,假设您使用的是Gradle (迁移之后我一直使用它),您应该按照说明将kotlin插件包含在build.gradle中,就像用kotlin关于如何与Gradle一起使用它的文档编写的那样。但是,这还不够,所以您必须在文档中向下滚动,找到kotlin编译选项,特别是jvmTarget
。在这里,您将发现版本1.6确实是默认的,您可以继续在build.gradle中配置编译任务。
compileKotlin { kotlinOptions.jvmTarget = 1.8 }
瞧,现在每一次再进口都达到1.8。如果您使用Maven,您也可以使用一个插件(只需谷歌),我相信您可以使用相同的jvmTarget
设置,尽管我还没有尝试过。
发布于 2019-03-23 16:03:40
解决办法:
compileKotlin {
kotlinOptions.jvmTarget = 1.8
}
如果这对您不起作用,请运行“compileKotlin”任务并检查输出。可能在构建脚本中有一些其他错误,它阻止了这个选项的应用。
https://stackoverflow.com/questions/52909575
复制