Jen*_*der 16 java scala intellij-idea gradle java-8
当我尝试创建项目时,IntelliJ会抱怨以下异常.
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)
但是'gradlew clean install'工作得很好.
项目设置是:
gradle版本2.3
scala 2.10和java
4个模块中的3个使用java 1.7(源和目标兼容性),第4个模块具有源和目标兼容性1.8并导致问题.
我有什么想法可以避免这个错误吗?(迁移到java 7不是一个选项,升级scala是)
Boh*_*nik 10
在Intellij IDEA(15 CE)中添加此scalac编译器选项:
构建,执行,部署 - > 编译器 - > Scala编译器 - >默认
其他编译器选项 :( -target:jvm-1.7为空).
还有配置文件Gradle 1,... with -target:jvm-1.8,所以我也将它们更改为-target:jvm-1.7.
我正在使用Scala 2.10,JVM 1.8,源兼容性1.7.它对我的情况有帮助.
我使用IntelliJ 2017.2.5 w/JRE 1.8.0,scala 2.10.5和gradle 3.3得到了相同的错误消息.我通过检查位于的IntelliJ IDE中的"委派IDE构建/运行操作以获取gradle"复选框解决了我的问题
设置>构建,执行,部署>构建工具> Gradle> Runner
详情请访问:https://docs.gradle.org/4.2.1/userguide/scala_plugin.html#ideaTargetVersion和https://www.jetbrains.com/help/idea/gradle.html
值得注意的是,我能够在IntelliJ之外构建我的gradle项目(即cmd行),并且在尝试使用IntelliJ IDE构建时仅收到此错误.
小智 7
默认情况下,Gradle使用ant任务来构建Scala代码,https://issues.scala-lang.org/browse/SI-8966显示在Scala 2.11.5之前,jvm 1.8未添加为受支持的目标.
您可以通过添加以下gradle构建文件来尝试使用基于Zinc的编译器.
tasks.withType(ScalaCompile) {
scalaCompileOptions.useAnt = false
}
Run Code Online (Sandbox Code Playgroud)
您可能还需要将锌编译器添加到依赖项列表中.
多年来,我一直在寻找一种解决方案,最后找到了它-与其他阅读本文档的人共享。
摘自:https : //devnet.jetbrains.com/message/5523902
subprojects {
tasks.withType(ScalaCompile) {
sourceCompatibility = "1.7"
targetCompatibility = "1.7"
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10090 次 |
| 最近记录: |