svn - 在每个 SVN 提交上运行 Sonar Runner 以分析传出的 SVN 文件

标签 svn jenkins sonarqube sonar-runner

我已经在我的 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/

相关文章:

SVN 重定位问题与 uuid

jenkins - 如何更改所有 Jenkins 作业中的 Git URL

email - 通过 EMAIL 在 Jenkins 中触发构建

svn - Maven 版本、subversion 分支和本地存储库

svn - 获取 svn : E170000: Unrecognized URL scheme for my custom Svn Gradle plugin

macos - 无法在 OSX 10.8 (Mountain Lion) 上使用颠覆

java - Sonar 更改此条件,使其不总是计算为 "true"。假阳性

jenkins - HipChat 插件不显示 jenkins 中添加的凭据

javascript - 使用lcov和istanbul时如何忽略Javascript代码覆盖率中的某些语句?

maven-plugin - 使用哪个 sonar-maven-plugin 版本?