好的,我最终找到了一个解决方案。我在说明中添加了一些注释,说明如何让它正常工作。
1. checkstyle's jar file somewhere
2. a checkstyle XML check file somewhere
3. To configure git:
* git config --add checkstyle.jar <location of jar>
* git config --add checkstyle.checkfile <location of checkfile>
* git config --add java.command <path to java executale> [optional
defaults to assuming it's in your path]
我检查了我的配置文件(可以在你的 Git 存储库的 .git 目录中找到),它看起来像这样:
...
[checkstyle]
checkfile = C:\\Users\\schuster\\Desktop\\checkstyle
jar = C:\\Users\\schuster\\Desktop\\checkstyle
...
所以,因为我正在使用 Windows,我将其更改为:
...
[checkstyle]
checkfile = C:/Users/schuster/Desktop/checkstyle/google_checks.xml
jar = C:/Users/schuster/Desktop/checkstyle/checkstyle.jar
...
.
4. Put this in your .git/hooks directory as pre-commit
'This'是我在陈述问题时链接的文件。所以这个文件需要放在/hooks目录中。但它必须重命名为其中一个已经存在的示例名称。由于我的hook是pre-commit hook,因此我使用了“pre-commit”文件名。接下来,该文件必须变成可执行文件。要做到这一点,请在您的git存储库的/hooks目录中键入chmod +x pre-commit
。如果您使用Windows,请使用Git Bash。
编辑:
如果有人想使用此脚本并想知道为什么即使检查失败它也不会中止-解决方法如下。
第58行
if (&run_and_log_system ($command))
必须更改为
if (!&run_and_log_system ($command))
java.exe
文件的路径。它是可选的,因为通常它在类路径上。这个perl
程序应该已经是一个可执行文件了。我不确定git实用程序是否知道如何在Windows上执行它,或者您是否需要另一个知道如何执行它的实用程序。 - rveach