在 maven 构建期间使用 ktlint 进行格式化

Use ktlint to format during maven build

我对 ktlint 使用了以下设置,它允许在本地 Maven 构建期间自动格式化所有文件,但如果格式不正确,则不会触发管道故障:

<plugin>
    <groupId>com.github.gantsign.maven</groupId>
    <artifactId>ktlint-maven-plugin</artifactId>
    <version>1.6.1</version>
    <executions>
        <execution>
        <id>format-and-check</id>
        <goals>
            <goal>format</goal>
            <goal>check</goal>
        </goals>
        </execution>
    </executions>
</plugin>

为了让 ktlint 在格式不正确时触发管道故障,我将设置更改为

<execution>
    <id>verify-code-style</id>
    <phase>validate</phase>
    <goals>
        <goal>check</goal>
    </goals>
</execution>

哪个会立即触发失败。

但是 - 现在我无法进行本地 Maven 构建并使用自动格式化。相反,它会立即触发故障,需要手动操作,例如 Needless blank line(s) in class X on line Y.

我希望两全其美 - 在管道中触发故障并在本地使用自动格式化。有什么办法可以实现吗?

由于与 CI 相比,您希望在本地有不同的行为,我认为最简单的解决方案是 运行 在本地 运行 构建命令之前的格式目标。

所以不用 mvn deploy(或 package 或任何你 运行),只是 运行

mvn ktlint:format deploy