Python 我可以使用预提交钩子在Java项目上调用maven构建吗?

Python 我可以使用预提交钩子在Java项目上调用maven构建吗?,python,git,maven-3,maven-plugin,githooks,Python,Git,Maven 3,Maven Plugin,Githooks,在将存储库提交到Git之前,我需要在本地存储库上触发maven构建 我需要什么东西 我是Git的新手,所以请就如何执行上述操作向我提供建议。提前感谢您可以尝试设置 在您输入提交消息之前,先运行预提交钩子。它用于检查即将提交的快照,查看是否忘记了什么,确保测试运行,或者检查代码中需要检查的内容 在您的例子中,.git/hook/pre-commit脚本可以触发maven构建:如果构建失败,则以状态1退出,提交将不会完成 尽管如此,即使在Windows上,也可以从钩子调用python脚本。 看看这个

在将存储库提交到Git之前,我需要在本地存储库上触发maven构建

我需要什么东西

我是Git的新手,所以请就如何执行上述操作向我提供建议。提前感谢

您可以尝试设置

在您输入提交消息之前,先运行预提交钩子。它用于检查即将提交的快照,查看是否忘记了什么,确保测试运行,或者检查代码中需要检查的内容

在您的例子中,
.git/hook/pre-commit
脚本可以触发maven构建:如果构建失败,则以状态1退出,提交将不会完成

尽管如此,即使在Windows上,也可以从钩子调用python脚本。
看看这个例子

#!/bin/sh

"C:\Python27\python.exe" "C:\path\to\mytriggers.py" myParams

因此,我可以从用python编写的预提交钩子调用本地存储库上的maven构建?@dennis yes:您的钩子可以用任何语言/脚本编写。只要
yourLocalRepo/.git/hook/pre-commit
是可执行的,它就可以工作。@dennis我对答案进行了编辑,以包括一个如何从git钩子调用python脚本的示例。预提交脚本只能从Jenkins或Bambor这样的CI触发?我不能在不使用CI的情况下使用maven构建吗?CI不能与提交的存储库一起工作吗?如果代码未能编译并通过各种代码质量检查,我想停止提交,我的假设是我可以将这些作为maven目标添加,并从用python编写的预提交脚本触发maven构建。这实际吗?以前做过吗?@dennis当然,你可以使用任何你想要的东西来构建:只要这个构建尝试进行提交,它就会触发预提交钩子脚本。然后,您可以将其集成到CI中。