是否可以在从svn提交之后或之前执行maven插件(由我创建(为了好玩))?
也许这样的事情有合适的maven生命周期?
感谢您的帮助!
修改 可以预先提交钩子执行maven插件吗?
答案 0 :(得分:0)
记住关于Subversion钩子的一个简单事实:
Subversion挂钩在Subversion服务器上运行,而不在本地系统上运行,无法访问用户的本地工作目录,也无法以任何方式操作该工作目录。
所以,你有一个pre-commit hook在预提交时运行一些maven插件,因为它无法访问你所做的更改。
现在,这个Maven插件在做什么?它运行单元测试吗?重新格式化代码?输出一些pithy quotation?为什么必须在提交之前运行它?
您可以使用持续集成工具(我强烈建议您使用它)在每次提交后运行Maven插件,然后在出现任何问题时通过电子邮件发送负责该项目的小组。是的,这将在提交后发生,但这是版本控制:提交可以撤消。
答案 1 :(得分:0)
如上所述,持续集成工具是任何规模较大的工作或团队项目的方法。
然而,有些原因可能会导致您将持续集成工具视为过度杀伤(尤其是因为它为不断增长的学习内容添加了另一种工具,并且您不会觉得您有足够的时间来做这件事现在)
因此,当然可以从您的svn服务器触发构建。请记住,这些将针对服务器运行的任何体系结构进行编译。如果你只是编译java那么你就没事了。
您需要使用提交后挂钩,因为预提交挂钩存在许多问题:
因此,如果你使用post-commit钩子,事情会容易得多。
查看svnlook
。此命令可用于查询提交中的更改:提交后挂钩中的svnlook changed ${1} -r ${2} > myTest.log
将为您打印一个文件更改列表。您可以轻松搜索此内容以查看上次提交中是否触及了目录,然后使用svn checkout
和mvn deploy
来构建该项目。