Sonar javascript 静态代码分析 - javascript 缺少 riport。 Maven项目
Sonar javascript static code analyze - javascript riport missing. Maven project
请帮帮我。我不知道为什么只缺少 java脚本静态代码分析 riports。
因此,我有一个包含多个模块的 Maven 项目和前端项目中的 javascript 代码。
- 已安装 SonarJS 插件
- 我是 运行宁:mvn clean install sonar:sonar
- 我已经从 pom.xml 而不是 sonar-project.properties
配置声纳
- sonar版本:6.7社区版
在声纳概述中它有 java 静态代码分析 riport 两个模块,但没有关于 java 脚本代码。
这是我在父项目中的 pom.xml 设置。
<?xml version="1.0" encoding="UTF-8"?>
<project ... >
...
<version>0.0.1-SNAPSHOT</version>
<modules>
<module>backend</module>
<module>frontend</module>
</modules>
<properties>
...
<!-- sonar -->
<sonar.version>3.4.0.905</sonar.version>
<sonar.host.url>http://my.sonar.domain.url</sonar.host.url>
<sonar.login>asdsd43f8g7fs498u9s8df7s97zf9er97zf7</sonar.login>
<sonar.javascript.file.suffixes>.js,.jsx,.vue</sonar.javascript.file.suffixes>
<sonar.sources>src/main/</sonar.sources>
<sonar.test>src/test/</sonar.test>
<sonar.jacoco.itReportPath>${project.testresult.directory}/coverage/jacoco/jacoco-it.exec</sonar.jacoco.itReportPath>
<sonar.jacoco.reportPath>${project.testresult.directory}/coverage/jacoco/jacoco.exec</sonar.jacoco.reportPath>
<sonar.java.codeCoveragePlugin>jacoco</sonar.java.codeCoveragePlugin>
<!-- For Java -->
<sonar.junit.reportsPath>reports/java/surefire-reports</sonar.junit.reportsPath>
<!-- For JavaScript -->
<sonar.javascript.lcov.reportPath>reports/js/lcov.dat</sonar.javascript.lcov.reportPath>
...
</properties>
<dependencies> ... </dependencies>
<build>
<pluginManagement>
<plugins>
...
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>${sonar.version}</version>
<executions>
<execution>
<id>sonar-run</id>
<phase>verify</phase>
<goals>
<goal>sonar</goal>
</goals>
</execution>
</executions>
</plugin>
....
</plugins>
</pluginManagement>
</build>
</project>
更新:
我有 运行 使用 -X 调试的声纳分析。以下日志:
[DEBUG] 15:08:27.144 'src/main/resources/static/js/template/template.js' excluded by org.sonar.plugins.javascript.JavaScriptExclusionsFileFilter
[DEBUG] 15:08:27.145 'src/main/resources/static/js/navigation/navigationEvents.js' excluded by org.sonar.plugins.javascript.JavaScriptExclusionsFileFilter
[DEBUG] 15:08:27.145 'src/main/resources/static/js/navigation/navigation.js' excluded by org.sonar.plugins.javascript.JavaScriptExclusionsFileFilter
[DEBUG] 15:08:27.145 'src/main/resources/static/js/navigation/moduleLoader.js' excluded by org.sonar.plugins.javascript.JavaScriptExclusionsFileFilter
但是没有任何排除设置。
我想说的是,首先你想尝试使用 sonar.properties 文件执行覆盖,只是为了弄清楚 - 你仍然缺少哪些键,最好是专门针对 js。此外,正确的设置可能取决于您使用的实际 Sonar 版本。
我看到的一件事是你 sonar.lcov.javascript.reportPath 两次。哪一个是正确的(首先使用硬编码路径,以确保您收到报告)
其次,在我的项目文件中,我还必须指定要使用的插件(类似于 sonar.js.coveragePlugin = lcov )。也许您还想添加,因为您正在使用 lcov。
最后,我还设置了以下标志:
sonar.dynamicAnalysis=重用报告
重复使用构建期间生成的报告需要这样做。
附带说明一下,我的配置是在 3 年前创建的,适用于当时最新的声纳版本。新版本的 Sonar 可能有一些变化。
在包含 JS 代码的 maven 模块的 pom 中,设置您的 JS 代码的 sonar.sources(如果需要,还可以进行测试)
您在评论中写道:
sonar.javascript.exclusions=**/node_modules/**,**/bower_components/**,**/js/**
如果您没有在任何 pom.xml
文件中指定它,那么该值将从服务器获取。打开即可看到配置:https://sonar.host/admin/settings?category=javascript
或Administration → Configuration → JavaSctript
。接下来你必须找到 JavaScript Exclusions
部分:
您可能还会看到 **/js/**
。在我看来,您应该删除该条目,因为它没有任何意义。如果不能,则必须通过添加覆盖默认值:
<sonar.javascript.exclusions>**/node_modules/**,**/bower_components/**</sonar.javascript.exclusions>
或
<sonar.javascript.exclusions></sonar.javascript.exclusions>
请帮帮我。我不知道为什么只缺少 java脚本静态代码分析 riports。
因此,我有一个包含多个模块的 Maven 项目和前端项目中的 javascript 代码。
- 已安装 SonarJS 插件
- 我是 运行宁:mvn clean install sonar:sonar
- 我已经从 pom.xml 而不是 sonar-project.properties 配置声纳
- sonar版本:6.7社区版
在声纳概述中它有 java 静态代码分析 riport 两个模块,但没有关于 java 脚本代码。
这是我在父项目中的 pom.xml 设置。
<?xml version="1.0" encoding="UTF-8"?>
<project ... >
...
<version>0.0.1-SNAPSHOT</version>
<modules>
<module>backend</module>
<module>frontend</module>
</modules>
<properties>
...
<!-- sonar -->
<sonar.version>3.4.0.905</sonar.version>
<sonar.host.url>http://my.sonar.domain.url</sonar.host.url>
<sonar.login>asdsd43f8g7fs498u9s8df7s97zf9er97zf7</sonar.login>
<sonar.javascript.file.suffixes>.js,.jsx,.vue</sonar.javascript.file.suffixes>
<sonar.sources>src/main/</sonar.sources>
<sonar.test>src/test/</sonar.test>
<sonar.jacoco.itReportPath>${project.testresult.directory}/coverage/jacoco/jacoco-it.exec</sonar.jacoco.itReportPath>
<sonar.jacoco.reportPath>${project.testresult.directory}/coverage/jacoco/jacoco.exec</sonar.jacoco.reportPath>
<sonar.java.codeCoveragePlugin>jacoco</sonar.java.codeCoveragePlugin>
<!-- For Java -->
<sonar.junit.reportsPath>reports/java/surefire-reports</sonar.junit.reportsPath>
<!-- For JavaScript -->
<sonar.javascript.lcov.reportPath>reports/js/lcov.dat</sonar.javascript.lcov.reportPath>
...
</properties>
<dependencies> ... </dependencies>
<build>
<pluginManagement>
<plugins>
...
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>${sonar.version}</version>
<executions>
<execution>
<id>sonar-run</id>
<phase>verify</phase>
<goals>
<goal>sonar</goal>
</goals>
</execution>
</executions>
</plugin>
....
</plugins>
</pluginManagement>
</build>
</project>
更新:
我有 运行 使用 -X 调试的声纳分析。以下日志:
[DEBUG] 15:08:27.144 'src/main/resources/static/js/template/template.js' excluded by org.sonar.plugins.javascript.JavaScriptExclusionsFileFilter
[DEBUG] 15:08:27.145 'src/main/resources/static/js/navigation/navigationEvents.js' excluded by org.sonar.plugins.javascript.JavaScriptExclusionsFileFilter
[DEBUG] 15:08:27.145 'src/main/resources/static/js/navigation/navigation.js' excluded by org.sonar.plugins.javascript.JavaScriptExclusionsFileFilter
[DEBUG] 15:08:27.145 'src/main/resources/static/js/navigation/moduleLoader.js' excluded by org.sonar.plugins.javascript.JavaScriptExclusionsFileFilter
但是没有任何排除设置。
我想说的是,首先你想尝试使用 sonar.properties 文件执行覆盖,只是为了弄清楚 - 你仍然缺少哪些键,最好是专门针对 js。此外,正确的设置可能取决于您使用的实际 Sonar 版本。
我看到的一件事是你 sonar.lcov.javascript.reportPath 两次。哪一个是正确的(首先使用硬编码路径,以确保您收到报告)
其次,在我的项目文件中,我还必须指定要使用的插件(类似于 sonar.js.coveragePlugin = lcov )。也许您还想添加,因为您正在使用 lcov。
最后,我还设置了以下标志: sonar.dynamicAnalysis=重用报告
重复使用构建期间生成的报告需要这样做。
附带说明一下,我的配置是在 3 年前创建的,适用于当时最新的声纳版本。新版本的 Sonar 可能有一些变化。
在包含 JS 代码的 maven 模块的 pom 中,设置您的 JS 代码的 sonar.sources(如果需要,还可以进行测试)
您在评论中写道:
sonar.javascript.exclusions=**/node_modules/**,**/bower_components/**,**/js/**
如果您没有在任何 pom.xml
文件中指定它,那么该值将从服务器获取。打开即可看到配置:https://sonar.host/admin/settings?category=javascript
或Administration → Configuration → JavaSctript
。接下来你必须找到 JavaScript Exclusions
部分:
您可能还会看到 **/js/**
。在我看来,您应该删除该条目,因为它没有任何意义。如果不能,则必须通过添加覆盖默认值:
<sonar.javascript.exclusions>**/node_modules/**,**/bower_components/**</sonar.javascript.exclusions>
或
<sonar.javascript.exclusions></sonar.javascript.exclusions>