java - Gradle:一尘不染的任务在需要时不触发

标签 java gradle format spotless

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

apply plugin: 'java'

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

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

相反,我只让 b) 部分工作。我如何确保 a) (格式化)在我执行构建步骤时自动发生?我不想明确调用“gradlew spotlessApply build”,而只想调用“gradlew build”。

我尝试添加“build { dependsOn spotlessApply } 但它说“找不到属性 spotlessApply”。

最佳答案

供将来引用,Spotless' GitHub issues是询问 Spotless 的最佳地点。将所有内容保存在一个地方。

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

用另一种方式做的问题是你永远不会知道错误的提交。如果我提交格式错误的代码,CI 服务器将使用 spotlessApply 修复格式,然后在 spotlessCheck 中确认格式已修复,并说“这段代码很好!”当实际上有人犯了错误的格式时。

如果你仍然想要你想要的,你可以这样完成:

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

关于java - Gradle:一尘不染的任务在需要时不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40432291/

相关文章:

c - 格式化 C 程序

java - Logback框架中AsyncAppender的配置和性能

java - Eclipse + Hibernate + Spring 问题

android - 您尚未接受以下 SDK 组件的许可协议(protocol)

groovy - 局部变量的名称查找

Fortran 中输出字符串和值的格式

java - 单向链表添加/删除

java - 如何识别日期时间格式?

android - 从终端收到的Gradle buildConfigField值

file - Visio 坐标格式