从Gradle同步时,IntelliJ会覆盖Scala其他编译器选项

Ale*_*aev 8 scala intellij-idea gradle

我正在使用IntelliJ IDEA中的Scala项目,并使用Gradle进行配置和依赖关系管理.

我每次添加一些新的依赖和同步入想法,它重写其他编译器选项进入-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'
Run Code Online (Sandbox Code Playgroud)

所以我需要手动修复它.

我可以-featurebuild.gradle中设置目标JVM版本或编译器参数(还需要选项),以便从那里获取它们吗?

谢谢!

Lau*_*vas 6

您可以添加sourceCompatibility = '1.7'到gradle构建文件然后刷新,项目将正常构建.请注意,这样您就不能在代码中使用Java 8源代码,这是暂时的黑客攻击GradlewareJetBrains解决问题.

您还可以篡改运行时生成的IDEA项目XML gradle idea.这将为您提供包含其他标志的选项.您可以通过打开项目.iml文件并确定需要更改的内容来检查当前的xml ,然后使用以下代码:

apply plugin: 'idea'

idea {
  module {
    iml {      
      withXml {
        def node = it.asNode()
        //modify xml
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

不会推荐它,因为你将不得不坚持使用,gradle idea并且无法直接从IDEA导入,但目前没有更好的方法来获得额外的标志.文档 - 想法插件想法模块