2011-08-04 67 views
8

我正在使用SVN作为我项目的版本管理工具,并计划使用声纳进行项目分析。SONAR与SVN的集成

如何在每次将代码签入SVN时运行声纳项目分析?

回答

13

不要做复杂的东西作为预先提交的钩子!当用户进行提交时,只有在预提交挂接完成后,控制才会返回给用户。由于声纳具有编译代码,您的用户将不得不等待每次提交以下:

  • 检查出代码
  • 编译代码
  • 运行所有的测试和检查声纳进行的
  • 等待声纳来完成它的报告和更新其数据库

所有这一切都需要多长时间? 10分钟? 20分钟? 5分钟?我们假设你的代码很小,或者你的编译器速度很快,所以只需要4分钟。用户是否希望每次等待4分钟,每次执行提交以便再次开始工作?

取而代之,获得连续构建服务器,如Jenkins。詹金斯安装快速简单。这是一个简单的* .war文件。您只需运行:

$ java -jar jenkins.war 

而且,您正在运行。哈德森一旦启动,你就可以定义一份“工作”。只需输入所需的信息,并保存。每次有人在Subversion中进行提交,Hudson都会在后台进行构建。

所有的乐趣都来自可以扩展Jenkins的数十个(也可能是数百个)第三方插件。例如,有一个Sonar插件可以运行Sonar任务,更新数据库并生成一些漂亮的报告。

如果有问题,Jenkins会通过电子邮件向负责人和整个开发团队发送电子邮件。 (插件允许詹金斯到IM,Tweet,甚至将红绿灯从红色变为红色)。这种即时的反馈和公共知识将使您的开发人员在进行提交之前执行自己的测试。

+0

非常感谢你.....我已经安装了COLLABNET SUBVERSION Edge,并且已经运行了声纳,但没有进行整合。正如你所说的,我将要求Hudson和jenkins,但是m并不知道这两者。 üplz帮助我建立一个小演示? – samarth

+0

詹金斯和哈德森是一样的东西。最初是Hudson,但是写这个的人离开了Oracle并继续了Jenkins下的项目。开发团队大部分都是詹金斯,但甲骨文仍然支持哈德森。我使用詹金斯。下载[Jenkins](http://jenkins-ci.org)并尝试一下。它非常易于使用。 Jenkins与Sonar整合。 Jenkins有插件,一个是Sonar插件。基本上,你告诉詹金斯在哪里找到声纳生成的报告,詹金斯使他们都看起来很漂亮。如果你有Sonar的工作,你已经有90%的路。 –

0

你可以调查哈德森。有一个Sonar插件。