【问题标题】:How to analyze Typescript project with SonarQube Scanner on Jenkins' Mac OS slave?如何在 Jenkins 的 Mac OS slave 上使用 SonarQube Scanner 分析 Typescript 项目?
【发布时间】:2018-06-21 01:16:17
【问题描述】:

我尝试在 Mac OS 从站上使用 SonarQube Scanner 插件分析 Jenkins 中的 TypeScript 项目。

工具:

问题:

SonarTS插件尝试启动Node.js,但是Node.js不在PATH变量中,见日志:

Caused by: java.io.IOException: Cannot run program "node": error=2, No such file or directory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
    at org.sonar.plugin.typescript.ExternalTypescriptSensor.executeExternalRunner(ExternalTypescriptSensor.java:175)

研究:

我尝试在 Mac 上配置路径:

我尝试将已添加的路径(/usr/bin/bin/usr/sbin/sbin)用于:

  • 符号链接

    但它不起作用,因为路径是写保护的(即使对于管理员)。

我尝试将路径传递给 SonarQube 扫描仪:

我还阅读了有关更改调用源中的路径的信息:

【问题讨论】:

    标签: typescript jenkins sonarqube sonarqube-scan


    【解决方案1】:

    如果您使用的是 SonarTS 1.2 或更高版本,您可以尝试使用 SonarQube UI 在设置中指定 nodejs 可执行文件的路径:

    【讨论】:

    • 这将是一个解决方案,但目前我们只使用 LTS 版本(公司政策)。下一个发布的 LTS 版本,我会更新并使用它。
    • 您可以继续使用 SonarQube 6.7 LTS,但只更新 SonarTS 插件。
    【解决方案2】:

    另一种方法是使用Environment Injector Plugin(版本2.1.5):

    总结

    EnvInject 插件提供以下功能:

    • 删除 Jenkins Java 进程继承的环境变量
    • 在节点(主/从)启动时注入环境变量
    • 在 SCM 签出之前或/之后执行设置脚本以进行运行
    • 在 SCM 签出之前或/和之后注入环境变量以进行运行
    • 注入环境变量作为运行的构建步骤
    • 为运行注入密码值
    • 在构建结束时导出环境变量,以便了解用于每个构建的环境变量集

    因此可以将 Node.js 的路径添加到 PATH 变量中:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-15
      • 2019-11-13
      • 2018-06-13
      • 1970-01-01
      • 1970-01-01
      • 2019-06-02
      相关资源
      最近更新 更多