maven - 在 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 类中。
我希望两全其美 - 在管道中触发故障并在本地使用自动格式化。有什么办法可以做到这一点?
解决方案
由于与 CI 相比,您希望在本地有不同的行为,我认为最简单的解决方案是在本地运行的构建命令之前运行格式目标。
所以不是 mvn deploy (或包或你运行的任何东西),只需运行
mvn ktlint:format deploy
推荐阅读
- eclipse - Google Cloud Endpoint 为空(API 资源管理器)
- javascript - 不使用 JQuery 滚动到元素
- spring - Thymeleaf 3 与 Spring Boot 2,无法处理模板
- c# - OData Azure API 不稳定的响应时间
- angularjs - 如何在angularJS中从控制器调用指令函数?
- javascript - 查找 HTML DOM 中是否存在指定的类
- c++ - gsl_complex 导致内存溢出
- scala - 火花指数移动平均线
- java - Java 8按每个id的最高值过滤列表
- python - 使用 7zip 子进程管道中的 tqdm 显示进度条