Maven和SonarTsPlugin的SonarQube扫描仪无法运行节点

Maven和SonarTsPlugin的SonarQube扫描仪无法运行节点,maven,typescript,jenkins,sonarqube,sonarqube-scan,Maven,Typescript,Jenkins,Sonarqube,Sonarqube Scan,我使用SonarQube 5.6.1进行代码分析(代码是用Spring Boot和Angular编写的(使用TypeScript))。3.4.0.905和1.1.0分别用于Java和TypeScript中的代码扫描 在我的pom.xml中,设置了以下属性: <frontend.directory>frontend</frontend.directory> <sonar.host.url>http://sonarqube.some-url.local/</

我使用SonarQube 5.6.1进行代码分析(代码是用Spring Boot和Angular编写的(使用TypeScript))。3.4.0.905和1.1.0分别用于Java和TypeScript中的代码扫描

在我的
pom.xml
中,设置了以下属性:

<frontend.directory>frontend</frontend.directory>
<sonar.host.url>http://sonarqube.some-url.local/</sonar.host.url>
<sonar.sources>src/main/java,${frontend.directory}/src/app,pom.xml</sonar.sources>
<sonar.exclusions>${frontend.directory}/node_modules/**</sonar.exclusions>
<sonar.tests>${frontend.directory}/src/app,src/test/java</sonar.tests>
<sonar.test.inclusions>**/*.spec.ts,src/test/java/**/*.java</sonar.test.inclusions>
<sonar.testExecutionReportPaths>${frontend.directory}/reports/ut_report.xml</sonar.testExecutionReportPaths>
<sonar.ts.coverage.lcovReportPath>${frontend.directory}/coverage/lcov.info</sonar.ts.coverage.lcovReportPath>
<sonar.ts.tslint.configPath>${frontend.directory}/tslint.json</sonar.ts.tslint.configPath>
<sonar.ts.tslint.nodePath>${frontend.directory}/node/node</sonar.ts.tslint.nodepath>
<sonar.ts.tslint.path>${frontend.directory}/node_modules/.bin/tslint</sonar.ts.tslint.path>
我运行
/mvnw sonar:sonar
启动SonarQube扫描仪。但是,当SonarTsPlugin运行并转到运行
tslint
时,将忽略
nodePath
,并使用全局节点。这会导致我的Jenkins框出现问题,在该框中出现以下错误:

[ERROR]无法在project nsgra web:java.io.IOException:无法运行程序“node”:ERROR=2,没有此类文件或目录->[Help 1]

这对我来说很奇怪,因为节点是通过
frontendmaven插件安装的
,我指的是
sonar.ts.tslint.nodePath中的
节点
二进制文件

有人有什么见解吗?

谢谢您的回复

我在docker吊舱里用jenkins发现了同样的问题

我安装了maven,但没有安装node,然后maven在./node/文件夹中创建了一个本地安装的node。当TS sonar试图执行节点以了解当前版本时,出现注释错误,并忽略所有.TS文件

我解决了使用您的建议并将其添加到命令行执行中的问题

-Dsonar.typescript.node=./node/node

maven前端插件是否在构建期间执行?maven前端插件的默认阶段是
生成资源
,如果不调用该阶段,插件实际上不会执行。尝试运行
/mvnw-package-sonar:sonar
,同时确保您运行的SonarTsPlugin版本与SonarQube 5.6.x兼容。更高版本需要6.7.x+。@user944849您能在此基础上进行扩展吗?中的版本为5.6+。我找不到任何需要6.7.x的概念。@AryanJ NYC,显示SonarTS版本1.1适用于SonarQube 5.6-6.6,而至少1.5+需要6.7+。这是SonarQube提供的插件。@AryanJ NYC,我不确定。我认为SonarTsPlugin是首先开发的,然后SonarQube可以创建自己的(SonarTs)。在您的情况下,我会确保只安装了一个,并且安装的版本适合您正在运行的SonarQube版本。确保你阅读了正确的文档。有时当我在谷歌上搜索SonarTs时,会出现SonarTsPlugin的文档。可能非常令人困惑!
-Dsonar.typescript.node=./node/node