2012-11-06 35 views
5

Tôi cần phải viết một Git pre commit hook trong Java, mà sẽ kiểm tra xem mã được nhà phát triển cam kết có được định dạng theo định dạng mã eclipse cụ thể trước khi thực sự cam kết hay không. Có thể viết móc trước cam kết trong Java không?Viết GIT tiền cam kết trong java?

Trả lời

5

Ý tưởng là gọi một tập lệnh mà lần lượt gọi chương trình java của bạn (kiểm tra định dạng).

Bạn có thể see here an example written in python, gọi java.

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) 

other example calls directly ant này, để thực hiện một kịch bản kiến ​​(mà lần lượt gọi một bộ kiểm tra 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 
1

Bạn có thể viết cái móc trong bất kỳ ngôn ngữ có thể được hiểu bằng vỏ, với người phiên dịch được cấu hình đúng cách (bash, python, perl) vv

Nhưng, tại sao không viết mã định dạng java của bạn trong java, và gọi nó từ hook trước commit.