不要做复杂的事情作为预先提交钩子!当用户执行提交时,控件不会在预提交挂钩完成之后返回给用户。由于Sonar必须编译您的代码,因此您的用户必须等待以下每次提交:
所有这些需要多长时间? 10分钟? 20分钟? 5分钟?假设您的代码很小或编译器速度非常快,因此只需4分钟。您的用户是否希望每次等待4分钟并且每次执行提交以便再次开始工作?
相反,获得一个连续的构建服务器 詹金斯 。 Jenkins设置快速简单。这是一个简单的* .war文件。你只需运行:
$ java -jar jenkins.war
而且,你已经开始运行了。一旦Hudson启动,您就可以定义一个“工作”。只需输入所需信息,然后保存即可。每次,有人在Subversion中提交,Hudson将在后台构建。
所有乐趣都来自于可以扩展Jenkins的数十个(也可能是数百个)第三方插件。例如,有一个Sonar插件可以运行你的Sonar任务,更新你的数据库,并生成一些漂亮的报告。
如果有问题,Jenkins将通过电子邮件向负责人和整个开发团队发送电子邮件。 (插件允许Jenkins进行IM,推特,甚至将红绿灯从绿色变为红色)。这种即时反馈和公共知识将使您的开发人员在进行提交之前进行自己的测试。
你可以调查哈德森。有一个Sonar插件。