我正在使用 SVN 作为我的项目的版本管理工具,并计划使用声纳进行项目分析。
每次将代码签入 SVN 时,如何使声纳项目分析运行?
不要将复杂的东西作为预提交钩子!当用户进行提交时,直到预提交挂钩完成后,控制才会返回给用户。由于 Sonar 必须编译您的代码,因此您的用户将不得不等待每次提交以下内容:
这一切需要多长时间?10分钟?20分钟?5分钟?假设您的代码很小或者您的编译器非常快,因此只需要 4 分钟。您的用户是否希望每次执行提交时都等待 4 分钟以重新开始他们的工作?
相反,获得像Jenkins这样的持续构建服务器。Jenkins 快速且易于设置。这是一个简单的 *.war 文件。您只需运行:
$ java -jar jenkins.war
而且,你已经启动并运行了。一旦 Hudson 成立,你就定义了一份“工作”。只需输入所需的信息,然后保存。每次,有人在 Subversion 中提交,Hudson 都会在后台构建。
所有有趣的地方在于可以扩展 Jenkins 的数十个(甚至数百个)第三方插件。例如,有一个 Sonar 插件可以运行您的 Sonar 任务、更新您的数据库并生成一些漂亮的报告。
如果有问题,Jenkins 会向负责人和整个开发团队发送电子邮件。(插件允许 Jenkins 发送即时消息、发推文,甚至可以将红绿灯从绿色变为红色)。这种即时反馈和公共知识将使您的开发人员在提交之前进行自己的测试。
你可以调查哈德森。它有一个声纳插件。