如何解决Gradle Java 插件给出编译错误,但 eclipse 中的相同代码工作正常
我在使用 Gradle 4.1、JDK 1.8.291 和 Eclipse IDE 时遇到了奇怪的问题。我创建了演示类来解释我的问题。请注意,我在 eclipse 构建路径中也设置了相同的 JDK。
以下代码在使用相同 JDK 的 Eclipse 中绝对可以正常工作:
tbl_product_info
但是,当我尝试使用 Gradle 4.1 和我在 ENV 变量中设置的相同 JDK 构建相同的代码时,会导致编译错误:
package com.test;
import java.util.HashMap;
import java.util.Map;
public class Sample {
public static void main(String[] args) {
Map<String,Long> myMap=new HashMap<>();
Long l=(myMap.get("abc")!=null)?myMap.get("abc"):0;
System.out.println(l);
}
}
下面是我的 build.gradle 文件:
> Task :compileJava
Sample.java:9: error: incompatible types: bad type in conditional expression
Long l=(myMap.get("abc")!=null)?myMap.get("abc"):0;
^
int cannot be converted to Long
1 error
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':compileJava'.
> Compilation failed; see the compiler error output for details.
谁能解释一下为什么会这样。
如果我像这样更改下面的行:
apply plugin: 'java'
sourceSets {
main {
java { srcDirs = [ 'src/main' ] }
}
test {
java { srcDirs = [ 'test' ] }
}
}
gradle 构建很好。但我想知道为什么早期的代码在 Gradle 中失败而在 eclipse 中成功。
因为我们正在从旧版 gradle 1.9 和 JDK7 迁移到 Gradle 4.1 和 JDK8。我在各种模块中发现了类似的行,并且由于此错误而全部失败。所以我想知道这个问题的根本原因。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。