0

我想编写一个 SVN 预提交挂钩脚本,它能够调用部署在 jboss 7 上的 EAR。我的意思是,当脚本执行时,它将打开 Web 导航器并通过 (localhost: 8080/耳朵的名字)。在我的项目中这样做非常重要,因此我们将不胜感激。

编辑:谢谢回答。一些细节: EAR 包含我的应用程序(当然是在 war 模块中),因此执行预提交挂钩的操作与打开 Web 浏览器、写入“localhost:8080/NameOfTheEar”并单击 Enter 相同。那可能吗?简而言之,当执行脚本时 => 应用程序(在 EAR 中)会在 Web 浏览器中弹出

4

2 回答 2

0

因为 preCommit 钩子可以做的限制是基于你编写钩子的语言,所以你可以在 preCommit 钩子中做任何事情。大多数语言都允许系统调用打开网页。我不会想象它会阻止提交发生。因此,这可能没有什么理由成为 preCommit 钩子。

但是,preCommit 挂钩在托管 Subversion 存储库的机器上运行。仅当提交更改的工作副本位于托管存储库的同一物理框上时,具有此类功能的挂钩才有效。如果您有远程客户端通过 svnserve 或 http 将更改发送到存储库,那么尝试通过 preCommit 挂钩显示浏览器不会对提交更改的客户端计算机产生任何影响。

我不知道有任何方法可以将这些类型的操作作为 subversion 代码本身的一部分传回给客户端。听起来你想要的是一个客户端钩子。TortoiseSVN 有一种定义客户端钩子的方法,但这是特定于 TortoiseSVN 的,不是基于存储库的 preCommit。Linux/Unix 环境中的别名也是一种客户端方法。

于 2013-05-21T22:19:26.140 回答
0

编写一个访问网页的预提交挂钩非常容易(这似乎是您所要求的大部分内容)。正如@EdH 所说,您几乎可以选择访问网页的语言和方法。

例如,您可以编写一个使用 curl 或 wget 来访问页面的 shell 脚本。根据按钮的作用,单击按钮可能会有点棘手。

如果您可以通过将正确的参数传递给页面来模拟按钮按下(如果需要,可能使用 POST 而不是 GET),那么它可能相当容易。

如果您确实需要单击按钮,则可以使用Selenium或其他一些自动化 UI 测试工具来按下按钮。

如果您喜欢 Groovy,请查看Geb

于 2013-05-22T03:00:39.570 回答