【发布时间】:2018-12-17 08:19:49
【问题描述】:
我正在用 Gradle 编译一个 Java 项目。当我运行gradle build 时,我得到:
任务:编译Java失败 /home/mvh/projects/research/DPM/src/main/java/DPM/bandera/Bandera.java:102:错误:从 1.4 版开始,'assert' 是关键字,不能用作标识符 公共静态无效断言(布尔表达式){ ^ (使用 -source 1.3 或更低版本以使用 'assert' 作为标识符) 1 个错误
显然,当使用 javac 编译时,解决方案是根据错误消息添加参数 -source 1.3。所以我尝试在gradle中添加这个参数如下:
compileJava {
options.compilerArgs << '-ea'
}
我还尝试用enableassertions、-enableassertions 和ea 代替-ea。
我也试过这个:
test {
enableAssertions = true
}
也无济于事。如何让我的 gradle 构建文件在编译我的项目时启用断言?谢谢!
【问题讨论】:
-
不行,解决办法是修改你的源代码,不使用
assert作为标识符。 -
我同意安德烈亚斯的观点。您的代码有问题,而不是 gradle。解决真正的问题,而不是解决症状。不,用 java 1.3 级别编译......这就像一个非常非常非常糟糕的主意。真的。
-
我很困惑。如果您使用
-source 1.3编译,即模拟不存在断言的旧代码,您为什么要尝试运行启用断言的代码?如果代码在没有断言的情况下编译,那么启用断言有什么意义? -
@Andreas 我认为用 1.3 编译并不是一个好主意,我只是尝试过,因为错误消息似乎表明我应该这样做。我对 gradle 或 Java 不是很了解,对建议很开放。
-
@MaxvonHippel 那么这是错误信息的重要部分:"'assert'是关键字,不能用作标识符",表示你需要编辑您的源代码并停止使用
assert作为方法名称。
标签: java gradle javac assertion