我想添加这个:https://gist.github.com/davetron5000/37350 checkstyle代码格式检查为pre-commit git hook。
我按照下面的说明进行操作但不起作用。
我尝试过的步骤:
- Checkstyle的jar文件
- Checkstyle XML检查文件
- 配置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 executable> [optional, defaults to assuming it's in your path]
- 将此作为预提交
放入.git / hooks目录中 醇>
也许它不起作用,因为我不明白git config --add java.command <path to java executable>
的含义。但它说它是可选的如果那不是问题,我可能需要以某种方式使脚本文件成为可执行文件吗?
ps:操作系统是Windows
答案 0 :(得分:3)
好吧,好像我终于找到了解决方案。我在指示中添加了一些评论,说明我是如何工作的。
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 reposirtory的.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
'这是'我在说明问题时链接的文件。所以这个文件需要在/ hooks目录中。但它必须重新命名为已存在的现有样本之一。由于我的钩子是预提交钩子,我采用了“预提交”文件名。接下来,此文件必须成为可执行文件。要在git存储库的/ hooks目录中的chmod +x pre-commit
中输入。如果您使用Windows,请使用Git Bash。
如果有人想要使用这个脚本,并想知道为什么即使检查失败也不会中止 - 这是如何修复它。
在第58行
if (&run_and_log_system ($command))
必须高呼到
if (!&run_and_log_system ($command))
答案 1 :(得分:1)
配置checkstyle.jar和checkstyle.checkfile之后。如果它不会因检查失败而中止,则可以解决此问题。
在第58行
$command .= " | grep WARN ";
if (!&run_and_log_system ($command))
替换为下方
documentClient