【发布时间】:2013-08-19 21:22:31
【问题描述】:
我团队中的开发人员对 SVN 所做的每一项更改都会传递一个应用需求,并且该需求有一个 id,该 id 写在提交消息的第一行。
我需要一个钩子来捕获这个 id 并调用外部服务来验证 id 状态是否正常。我已经阅读了很多关于 SVN 结构和钩子的内容,但不明白如何用 Java 编写这个钩子。
【问题讨论】:
我团队中的开发人员对 SVN 所做的每一项更改都会传递一个应用需求,并且该需求有一个 id,该 id 写在提交消息的第一行。
我需要一个钩子来捕获这个 id 并调用外部服务来验证 id 状态是否正常。我已经阅读了很多关于 SVN 结构和钩子的内容,但不明白如何用 Java 编写这个钩子。
【问题讨论】:
钩子只是放置在特定位置的可执行程序,它接受特定参数。它使用什么语言并不重要。
在您的情况下,如果您尝试用 Java 编写它并在 Windows 上运行它,您可能需要编写一个 .bat 文件并将其安装在具有正确名称的 hooks 目录下。您需要将批处理文件接收到的参数传递给您的 java 程序。
您在这里需要一个批处理文件的原因是因为 Windows 不能只为您启动 Java 程序,您需要使用正确的参数运行 Java。
这样的事情应该可以工作: @echo 关闭 java -jar myjavahook.jar %*
%* 将所有参数复制到批处理文件并将它们添加到您的 java 程序中。
根据您的 Java 程序,您可能需要不同或额外的参数。
由于您正在编写预提交挂钩并且批处理文件的退出代码很重要,因此您可能还希望执行其他问题中描述的类似操作: Can a batch file capture the exit codes of the commands it is invoking?
【讨论】: