我已经在我的 Ubuntu 机器上安装了 SonarQube,并为我的一个 PHP 项目运行了一个 Sonar 运行器。它运行完美,我可以在 Sonar 网络面板中看到所有错误。
http://localhost:9000/sonar
但我真正想要的是分析所有文件以查找将在我的 svn 存储库中提交的错误。我读了很多关于 Hudson 和 Jenkins 的文章,但真的没有确切的想法去做。在我之前的公司里,既有sonar,也有svn。当我们在 svn 中提交文件时,sonar 用于分析所有传出文件的代码,我的 svn 客户端返回了所有错误。
我还阅读了提交前和提交后的 svn Hook ,但专家说提交文件会花费很多时间,并且会让其他用户等待他们的 svn 使用。
最佳答案
假设您可以访问 svn 存储库服务器,一个自动构建系统(maven/ant 或类似系统)并且 Sonar 服务器有一个配置了质量门的构建断路器插件,您可以编写一个简单的 shell 脚本来:
- svn 更新存储库工作区
- 编译任务(maven/ant)
- 以增量模式执行sonar-runner
- 构建中断时的自定义错误消息
将脚本复制到存储库 Hook 目录。如果存储库已有预提交 Hook ,请附加命令/bin/sh your_shell_script_full_path。
如果预提交 Hook 文件不存在,则创建文件 pre-commit.sh 并包含它。
关于svn - 在每个 SVN 提交上运行 Sonar Runner 以分析传出的 SVN 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30591163/