我在Windows系统上的构建项目有一些问题。我的项目使用带有目标“验证”的formatter-maven-plugin。在GitHub中推送项目之前,我先将其格式化并推送。之后,我将其克隆到Windows计算机上,并尝试“ mvn全新安装”,但我得到了:
Failed to execute goal net.revelc.code.formatter:formatter-maven-plugin:2.9.0:validate (default) on project application: File 'C:\Users\AUser\Desktop\demo\application\src\main\java\com\myapp\Application.java' has not been previously formatted. Please format file and commit before running validation!
在Linux中,该问题不存在。这是为什么?在推入Git之前,我确实对其进行了格式化。为什么在Linux上不存在问题?更改我无法更改格式的目标。
<plugin>
<groupId>net.revelc.code.formatter</groupId>
<artifactId>formatter-maven-plugin</artifactId>
<version>2.9.0</version>
<executions>
<execution>
<goals>
<goal>validate</goal>
</goals>
<configuration>
<configFile>${project.basedir}/../eclipse/eclipse-formatter.xml</configFile>
<encoding>UTF-8</encoding>
</configuration>
</execution>
</executions>
</plugin>
答案 0 :(得分:0)
我认为您在格式化时错过了一个文件。基于主题上的this issue,似乎记录了一条更好的错误消息,指出了有问题的文件。如果将Maven Formatter升级到最新的稳定版本,则应看到以下格式的新错误消息:
文件' fileName '先前未格式化。请先格式化文件并提交,然后再运行验证!
答案 1 :(得分:0)
答案 2 :(得分:0)
我遇到了这个问题,结果,Jenkins git fench 代码,一些文件以 CRLF 结尾,因为行分隔符是 LINUX 的 LF,所以验证失败。有两种方法可以解决这个问题:
您可以使用 .gitattributes set text eol = lf
,保持 git fench 代码文件以 LF 结尾。
另一个,使用formatter-maven-plugin
标签lineEnding
,设置<lineEnding>KEEP</lineEnding>
,让行分隔符取决于文件本身,而不是系统。
我更喜欢第二种方式,因为格式应该保持系统独立。