提交代码前编译

idea很好用,但是不会自动编译代码,需要打开这个类才会检查编译错误。如果修改了代码后出现编译错误,需要手动编译才能发现,有时提交代码前忘了编译,就会将错误代码提交。

可以使用git的pre-commit hook,在提交代码前自动的编译。

1
2
touch .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit

pre-commit文件内容如下:

1
2
3
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
mvn compile test-compile > mvn-compile.log 2>&1
exit $?

其中第一行是可选的,因为我的项目代码和mvn版本决定了必须使用1.7,所以设置了jdk为1.7版本。

第二行中将日志输出到mvn-compile.log,方便查看错误。

第三行的$?是第二行的执行结果,如果编译成功$?为0,编译失败$?不为0。

git 会根据hook的返回结果判断是否继续,返回0表示成功,需要继续,返回非0表示失败,就直接禁止提交。