`assert` 是关键字,用 Gradle 编译

`assert` is a keyword, compiling with Gradle

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

Task :compileJava FAILED /home/mvh/projects/research/DPM/src/main/java/DPM/bandera/Bandera.java:102: error: as of release 1.4, 'assert' is a keyword, and may not be used as an identifier public static void assert(boolean expr) { ^ (use -source 1.3 or lower to use 'assert' as an identifier) 1 error

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

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

我还尝试用 enableassertions-enableassertionsea 代替 -ea

我也试过这个:

test {
    enableAssertions = true
}

也无济于事。我怎样才能让我的 gradle 构建文件在编译我的项目时启用断言?谢谢!

你试过了吗?

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

我必须警告你,这样你就失去了所有 "modern" 语言特性(比如泛型)。

PS: 正确的解决方案是在 class Bandera.

中重命名 assert 方法

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

compileJava {
    sourceCompatibility = 1.3
}

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