首页 > 解决方案 > 在 maven 构建期间使用 ktlint 格式化

问题描述

我为 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)在 Y 线的 X 类中。

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

标签: mavenkotlinktlint

解决方案


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

所以不是 mvn deploy (或包或你运行的任何东西),只需运行

mvn ktlint:format deploy

推荐阅读