我尝试使用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上配置路径:
environment.plist
(来自https://stackoverflow.com/a/15313578/5277820)
但它不起作用,因为它不再受支持。
/etc/launchd.conf
(来自https://stackoverflow.com/a/15257454/5277820)
但它不起作用,因为它不再受支持。
/etc/paths.d/
(来自https://apple.stackexchange.com/a/106549)
但它不起作用(相同的错误信息)。
我尝试将已添加的路径(/usr/bin
,/bin
,/usr/sbin
,/sbin
)用于:
符号链接
但它不起作用,因为路径是写保护的(即使是管理员)。
我尝试将路径传递给SonarQube扫描仪:
JVM选项(来自https://stackoverflow.com/a/21094766/5277820)
但它不起作用(相同的错误信息)。
我还阅读了有关更改呼叫源路径的信息:
ProcessBuilder#environment()
(来自https://stackoverflow.com/a/5155791/5277820)
但我没有尝试,因为我不想修补SonarQube扫描仪源(出于维护原因)。
ProcessStarter#setGlobalSearchPath
(来自https://stackoverflow.com/a/15206961/5277820)
但我没有尝试,因为我不想修补SonarQube扫描仪源(出于维护原因)。
答案 0 :(得分:2)
答案 1 :(得分:0)
另一种方法是使用Environment Injector Plugin(版本2.1.5):
<强>摘要强>
EnvInject插件提供以下功能:
- 通过Jenkins Java进程删除继承的环境变量
- 在节点(主/从)启动时注入环境变量
- 在运行SCM结帐之前或之后执行设置脚本
- 在运行SCM结帐之前或之后注入环境变量
- 注入环境变量作为运行的构建步骤
- 为运行注入密码值
- 在构建结束时导出环境变量,以便了解用于每个构建的环境变量集
因此可以添加Node.js&#39; PATH
变量的路径: