Java `assert`是一个关键字,用Gradle编译

Java `assert`是一个关键字,用Gradle编译,java,gradle,javac,assertion,Java,Gradle,Javac,Assertion,我正在和Gradle一起编译一个Java项目。当我运行gradle build时,我得到: 任务:编译ejava失败 /home/mvh/projects/research/DPM/src/main/java/DPM/bandera/bandera.java:102:错误:从1.4版开始,“assert”是一个关键字,不能用作标识符 公共静态void断言(布尔表达式){ ^ (使用-source 1.3或更低版本将“assert”用作标识符) 1错误 显然,在使用javac编译时,解决方案是根据

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

任务:编译ejava失败 /home/mvh/projects/research/DPM/src/main/java/DPM/bandera/bandera.java:102:错误:从1.4版开始,“assert”是一个关键字,不能用作标识符 公共静态void断言(布尔表达式){ ^ (使用-source 1.3或更低版本将“assert”用作标识符) 1错误

显然,在使用javac编译时,解决方案是根据错误消息添加参数
-source 1.3

compileJava {
    options.compilerArgs << '-ea'
}
也没用。当我的gradle构建文件编译我的项目时,如何让它启用断言?谢谢!

你试过了吗

compileJava {
    options.compilerArgs << '-source 1.3'
}
重命名方法是解决此问题的更好方法。

您尝试过吗

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


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

不,解决方案是修改源代码,使其不使用
assert
作为标识符。我同意Andreas的观点。您的代码有问题,而不是gradle。解决真正的问题,而不是解决症状。不,使用java 1.3级别编译…这就像是一个真正的bad想法。真的。我很困惑。如果你用
-source 1.3
编译,也就是说,在断言不存在的地方模拟旧代码,为什么你要在启用了断言的情况下运行代码?如果代码编译时没有它们,启用断言又有什么意义呢?@Andreas我认为用1.3编译不是一个好主意,我之所以尝试它,是因为错误消息似乎建议我应该这样做。我对gradle或Java不是很了解,也不太愿意接受建议。@MaxvonHippel那么这是错误消息的重要部分:“'assert'是一个关键字,可能不能用作标识符”,这意味着您需要编辑源代码并停止使用
assert
作为方法名称。不,解决方案是修改源代码,使其不使用
assert
作为标识符。我同意Andreas的观点。您的代码有问题,而不是gradle。解决真正的问题,而不是解决症状。不,使用java 1.3编译级别…这是一个非常糟糕的主意。真的。我很困惑。如果你用
-source 1.3
编译,也就是说,在断言不存在的情况下模拟旧代码,为什么你要在启用断言的情况下运行代码?如果代码编译时没有它们,启用断言有什么意义?@Andreas我不这么认为it’使用1.3编译确实是个好主意,我只是尝试了一下,因为错误消息似乎建议我应该这样做。我对gradle或Java不是很了解,也不太愿意接受建议。@MaxvonHippel那么这就是错误消息的重要部分:“'assert'是一个关键字,不能用作标识符”,这意味着您需要编辑源代码并停止使用
assert
作为方法名称。这不是“警告”,而是简单的“禁止”指示。尽管如此,它在理论上解决了问题,所以请投票支持创造性;-)@GhostCat是的,但如果OP想要它,我能做什么?我知道,我们只分发射击枪。人们瞄准的地方,而不是我们的问题。这对我不起作用:>*出了什么问题:任务执行失败:compileJava.>无效标志:-来源1.3我可以更改Bandera不过,这是个好主意。如果可能的话,我明天会试试。这不是一个“警告”,而是一个简单的“不行”的指示。尽管如此,它在理论上解决了问题,所以请投票支持创造性;-)@GhostCat是的,但如果OP想要它,我能做什么?我知道,我们只分发射击枪。人们瞄准的地方,而不是我们的问题。这对我不起作用:>*出了什么问题:任务执行失败:compileJava.>无效标志:-来源1.3我可以更改Bandera不过,那是个好主意。如果可能的话,我明天就试试。
compileJava {
    sourceCompatibility = 1.3
}