“ assert”是关键字,使用Gradle

时间:2018-12-17 08:19:49

标签: java gradle javac assertion

我正在用Gradle编译Java项目。运行gradle build时,我得到:

  

任务:compileJava失败   /home/mvh/projects/research/DPM/src/main/java/DPM/bandera/Bandera.java:102:错误:从1.4版开始,“声明”是一个关键字,可能不能用作标识符       公共静态无效assert(boolean expr){                          ^     (使用-source 1.3或更低版本将'assert'用作标识符)   1个错误

显然,使用javac进行编译时,解决方案是根据错误消息添加参数-source 1.3。所以我尝试在gradle中添加此参数,如下所示:

compileJava {
    options.compilerArgs << '-ea'
}

我还尝试了enableassertions-enableassertionsea来代替-ea

我也尝试过:

test {
    enableAssertions = true
}

也无济于事。在编译项目时,如何获取gradle构建文件以启用断言?谢谢!

1 个答案:

答案 0 :(得分:2)

您尝试过吗?

compileJava {
    options.compilerArgs << '-source 1.3'
}

我必须用这种方式警告您,您会松开所有“现代”语言功能(例如泛型)。

PS: 正确的解决方案将在类assert中重命名Bandera方法。

编辑 设置此标志的正确方法是

compileJava {
    sourceCompatibility = 1.3
}

重命名方法是解决此问题的更好方法。