【问题标题】:How to link sources from SVN to be analysed with SonarQube如何链接来自 SVN 的源以使用 SonarQube 进行分析
【发布时间】:2014-05-09 12:21:06
【问题描述】:

我正在处理一个我想要执行质量分析的项目。我听说过关于SonarQube 的好消息并想尝试一下。我有以下设置:

SonarQube 与 Sonar Runner for Java 一起安装在服务器上。它已配置并准备就绪。我的代码本地驻留在我的机器上,远程驻留在与 SonarQube 主机服务器不同的 SVN 服务器上。

我正在使用 Eclipse 并安装了 Sonar Eclipse。我想继续在服务器上进行预定的质量分析,并使用 Sonar Eclipse 在本地进行预览。目前,我最大的问题是如何让 Sonar Runner 分析我的源文件。

就我在文档中阅读的内容而言,我需要以某种方式将我的代码连同配置文件一起放入 SonarQube Project 文件夹中的相应文件夹中。没有将项目链接到远程源文件吗?

查看一些documentation on links 似乎这是可能的。但是我不明白 SourcesDeveloper connections 之间的区别。

【问题讨论】:

    标签: svn sonarqube sonar-runner


    【解决方案1】:

    SonarQube 不会自行获取源代码,项目链接部分仅用于文档。

    定期分析存储库中源代码的最简单方法是使用专用工具安排分析时间 - 例如 cron 任务、Windows 计划任务,甚至更好的持续集成服务器。

    例如,您可以设置 Jenkins 作业以从您的 SVN 存储库中获取源代码、构建它、运行自动化测试并最终启动 SonarQube Runner。

    【讨论】:

    • 我不想获取源代码,我想告诉它在哪里可以找到它。该位置恰好是我的 SVN 服务器。 (我可能会添加相当稀缺的)文档没有指定项目文件夹必须驻留的位置!
    • 请阅读我的第一句话:它不会自行从您的 SVN 存储库中获取源代码。
    • 感谢您的回复。我知道它不会获取源代码,正如我所说,这不是我想要做的。代码将保留在原处。我想为 SonarQube 设置一个远程源文件夹。
    • AFAIK SonarQune runner 只能在本地目录上工作,所以如果你想使用远程的,你会希望它显示为本地的(例如,如果使用它,请为其分配一个驱动器号Windows 或通过 NFS/CIFS(如果使用 POSIX 操作系统)。
    • 谢谢!虽然不方便,但这可能会奏效。或者,我想我可以依靠使用 Eclipse 插件的“即时”分析。你知道这是否是一个可行的选择吗?
    【解决方案2】:

    最简单的方法是

    • SonarQube 主机上有 SVN(客户端部分)
    • 在 SonarQube 主机上为您的项目创建 WC
    • 按需将 SonarQube 的工作副本更新为实际 HEAD 并执行分析(您可能还希望将结果存储在存储库中/以某种方式与代码分开/在这种情况下,结果可以存储在 WC 中并提交到存储库)李>

    对于 Git 工作流程只会略有不同:您必须拥有 Git、克隆 repo(一次)、按需拉取、将结果提交到本地 repo 但永远不要推送到上游

    编辑:

    作为mentioned by Patroklos Papapetrou

    所有 SonarQube 客户端(sonar-runner、maven 插件等)需要 该源代码已经在您的机器中可用 运行分析

    因此,如果您不想(不能拥有)SonarQube 上的 SVN WC并且希望在每次提交后进行分析,您只有一个选择:

    • 在 Subversion 服务器端的 post-commit 钩子中执行

      • 将存储库(主干)树导出到某个本地临时文件夹中
      • 将树(使用任何可用的方法 /ssh、ftp、rsync/)传输到 SonarQube 的主机目录(从以前的分析源中解放出来),可以使用 sonar-runner

    【讨论】:

    • SVN 和 SonarQube 不可能在同一个主机上。按需更新文件也是我不想做的事情。我想提交我的更改,然后安排分析。
    • 没错,我今天读了很多遍。我不想整合任何东西。我的问题是,如何将源代码链接到我的存储库?由于每次提交都会更新存储库,因此运行分析器可以正常工作,因为任何 SCM 业务都应该是透明的。
    猜你喜欢
    • 2019-02-23
    • 1970-01-01
    • 2018-02-16
    • 2017-04-29
    • 2015-07-07
    • 1970-01-01
    • 2017-08-04
    • 2019-03-16
    • 2016-01-27
    相关资源
    最近更新 更多