我遵循了Spotless插件的自述文件,并将以下内容包含在我的build.gradle中:

apply plugin: 'java'

spotless {
    java {
        eclipseFormatFile 'my-eclipse-format.xml'
    }
}

当我运行“gradlew build”时,我希望Spotless能够:a)使用上述格式自动格式化我的代码; b)进行检查(即spotlessJavaCheck)以验证它是否发生。

相反,我只能使b)部分起作用。执行构建步骤时,如何确保a)(格式化)自动发生?我不想显式地称为“gradlew spotlessApply构建”,而仅是“gradlew构建”。

我尝试添加“build {DependOn spotlessApply},但显示“无法找到属性spotlessApply”。

最佳答案

为了将来引用,Spotless' GitHub issues是询问Spotless的最佳场所。将所有内容都放在一个地方。

一尘不染的预期行为是让您知道spotlessCheck存在问题。然后,您自己手动运行spotlessApply

这样做的问题是您永远不会知道错误的提交。如果我提交了格式错误的代码,则CI服务器将使用spotlessApply修复该格式,然后确认该格式已在spotlessCheck中修复,然后说“此代码不错!”。实际上是有人提交了格式错误的内容。

如果您仍然想要自己想要的东西,则可以这样完成:

afterEvaluate {
    tasks.getByName('spotlessCheck').dependsOn(tasks.getByName('spotlessApply'))
}

10-06 08:55