我正在 IntelliJ IDEA 中处理 Scala 项目,并使用 Gradle 进行配置和依赖项管理。
每次我添加一些新的依赖并将其同步到 IDEA 时,它都会重写 其他编译器选项 进入 -target:jvm-1.8
,当我尝试使用 IDEA 制作时会导致错误的原因:
Error:scalac: 'jvm-1.8' is not a valid choice for '-target'
Error:scalac: bad option: '-target:jvm-1.8'
所以我需要手动修复它。
我可以在我的 中设置目标 JVM 版本或编译器参数(还需要
-feature
选项)吗? build.gradle ,所以它会从那里带走它们?谢谢!
最佳答案
您可以添加 sourceCompatibility = '1.7'
到您的 gradle 构建文件然后刷新,项目将正常构建。请注意,这样你的代码中就不能有 Java 8 源代码,这是一个临时的 hack,直到 Gradleware
或 JetBrains
解决问题。
您还可以篡改运行时生成的 IDEA 项目 XML gradle idea
.这将使您可以选择包含其他标志。您可以通过打开项目 .iml
来检查您当前的 xml。文件并确定需要更改的内容,然后使用以下代码:
apply plugin: 'idea'
idea {
module {
iml {
withXml {
def node = it.asNode()
//modify xml
}
}
}
}
不过不推荐它,因为你必须坚持使用
gradle idea
并且无法直接从 IDEA 正确导入,但目前没有更好的方法来添加额外的标志。文档 - idea plugin和 idea module
关于scala - 从 Gradle 同步时,IntelliJ 会覆盖 Scala 附加编译器选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25286749/