【问题标题】:Analyze iOS/Swift mobile apps with SonarQube使用 SonarQube 分析 iOS/Swift 移动应用程序
【发布时间】:2018-08-11 00:46:27
【问题描述】:

嗯,在我的公司,我们用一些语言开发了一些项目。现在我们正在将所有内容从 SVN 迁移到 GitLab,并且我们开始将 Jenkins 和 SonarQube 与 Ubuntu Server 一起用于 CI。

Java 项目一切正常(一切都使用 linux slaves 运行),但现在我们想使用 SonarQube 来分析带有 Objective-C 和 Swift 的应用程序。

为了分析项目(移动应用程序),我们将购买开发者版以使用 Swift 和 Objective-C 插件(开源插件被丢弃)。

所以,我的问题是,我们需要将 SonarQube 从 Ubuntu 迁移到 Mac?或者可以用 Mac slave 分析?

顺便说一句,我阅读了所有插件文档,但没有对此发表任何评论。

谢谢!!

【问题讨论】:

    标签: objective-c swift sonarqube sonar-runner sonarqube-scan


    【解决方案1】:

    您可以在任何您喜欢的平台上托管 SonarQube,因为它是一个 Java 应用程序。同样,您可以在任何地方分析大多数语言,因为大多数语言的分析也是使用 Java 处理的。 Swift 肯定是这样。任何可以使用 Java 的地方,都可以运行分析。

    对于 Objective-C,您需要先构建代码using the Build Wrapper,然后再运行分析。 Build Wrapper 是用 C++ 编写的,但针对 Windows、Linux 和 Mac 编译,因此您基本上可以在任何您喜欢的地方运行它。这意味着您唯一真正的约束是编译您的 C、C++ 或 Objective-C 代码所需的平台。

    明确地说,您可以在任何类型的从属设备上运行分析,特别是在 Mac 上。分析将生成一个报告,该报告将提交给服务器,并按照接收到的顺序进行排队和处理。

    注意因为这在您的问题中有所暗示,所以我想进行一个具体的扩展:您的代码在哪里分析应该与 SonarQube 实例的托管位置无关。特别是,不是在托管 SonarQube 实例的同一台机器上运行分析是一个好主意。您确实应该至少拥有三台服务器:一台用于 SonarQube,一台用于数据库,一台用于 Jenkins。有关更多信息,请参阅the docs

    【讨论】:

    • 哇!!很好的答案!非常感谢。现在我们可以完全集成 sonarqube。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 2017-08-04
    相关资源
    最近更新 更多