JavaでGitprecommitフックを作成する必要があります。これにより、開発者がコミットしたコードが、実際にコミットする前に特定のEclipseコードフォーマッターに従ってフォーマットされているかどうかを確認します。そうでない場合は、コミットを拒否します。Javaでprecommitフックを書くことは可能ですか?
9393 次
3 に答える
7
アイデアは、順番にあなたのJavaプログラムを呼び出すスクリプトを呼び出すことです(フォーマットをチェックします)。
Java を呼び出すpython で書かれた例をここで見ることができます。
try:
# call checkstyle and print output
print call(['java', '-jar', checkstyle, '-c', checkstyle_config, '-r', tempdir])
except subprocess.CalledProcessError, ex:
print ex.output # print checkstyle messages
exit(1)
finally:
# remove temporary directory
shutil.rmtree(tempdir)
この別の例ではant
、Ant スクリプトを実行するために を直接呼び出します (次に、Java JUnit テスト スイートを呼び出します)。
#!/bin/sh
# Run the test suite.
# It will exit with 0 if it everything compiled and tested fine.
ant test
if [ $? -eq 0 ]; then
exit 0
else
echo "Building your project or running the tests failed."
echo "Aborting the commit. Run with --no-verify to ignore."
exit 1
fi
于 2012-11-06T07:41:29.020 に答える
1
適切に構成されたインタープリター(bash、python、perl)などを使用して、シェルが理解できる任意の言語でフックを記述できます。
しかし、JavaコードフォーマッタをJavaで記述し、pre-commitフックから呼び出してみませんか。
于 2012-11-06T07:27:11.623 に答える