我想确保在我的项目中使用 CRLF(Windows 风格)的换行符。我正在检查一些替代方案,但不确定哪一个是最好的。
期望的行为:
如果一个文件不是 CRLF 格式,IntelliJ IDEA 在底部会显示:
我希望我的 Maven profile(比如 mvn clean install -P tests)失败,并显示类似于“无效的行分隔符,不是 CRLF”这样的错误信息
非常感谢。
另一种可能的方法是看看JetBrains的另一个持续集成工具TeamCity。虽然我没有使用过它,但也许它可以让你在检查出错时配置失败(不过从他们的文档中快速查看,我没有找到如何做到这点)。
更新:
看起来TeamCity可能确实值得一试。他们的构建失败条件文档说明:
当在您的构建中使用代码检查工具,例如代码覆盖率、重复项查找、检查等时,您的构建会生成各种数字指标。对于这些指标,您可以设置阈值,超过阈值会导致构建失败。
<module name="RegexpMultiline">
<property name="format" value="(?<!\r)\n"/>
<property name="maximum" value="0"/>
<property name="message" value="Invalid line separator, not CRLF"/>
</module>
然后配置构建使用checkstyle插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<failsOnError>true</failsOnError>
<consoleOutput>true</consoleOutput>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
<checkstyleRules>
<module name="Checker">
<module name="RegexpMultiline">
<property name="format" value="(?<!\r)\n"/>
<property name="maximum" value="0"/>
<property name="message" value="Invalid line separator, not CRLF"/>
</module>
</module>
</checkstyleRules>
</configuration>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>checkstyle</goal>
</goals>
</execution>
</executions>
</plugin>
它默认绑定到“验证”阶段,如果你运行安装程序,它应该已经被激活。
git config --global core.autocrlf false
现在一切都很好。