升级到Gradle 7后,我有很多警告,如:
Execution optimizations have been disabled for task ':<...>:compileJava' to ensure correctness due to the following reasons:
- Gradle detected a problem with the following location: '<...>buildclassesmain'. Reason: Task ':<...>:compileJava' uses this output of task ':<...>:processResources' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed.
原因:我将资源的输出重定向到与类文件相同的文件夹中—对于集成测试读取资源:
sourceSets {
main {
output.resourcesDir = file("build/classes/main")
java.outputDir = file("build/classes/main")
}
test {
output.resourcesDir = file("build/classes/test")
java.outputDir = file("build/classes/test")
}
}
如何抑制这些警告?
我没有找到一种方法来抑制特定的警告,就像我们说的只有弃用警告。
我在命令行中使用-q标志跳过这些警告。只是要注意,在这种情况下,所有的警告将被抑制。
示例:gradlew build -q
至少你应该创建任务来摆脱这种技术债务。但在此期间,您可以使用-q
标志为您的构建,以避免这种额外的噪音。问题解决后,移除-q
标志。
请注意,我还尝试使用——warning-mode none标志,该标志对弃用警告不起作用。