Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sonar javascript静态代码分析-缺少javascript riport。马文项目_Javascript_Maven_Sonarqube_Static Code Analysis_Sonarjs - Fatal编程技术网

Sonar javascript静态代码分析-缺少javascript riport。马文项目

Sonar javascript静态代码分析-缺少javascript riport。马文项目,javascript,maven,sonarqube,static-code-analysis,sonarjs,Javascript,Maven,Sonarqube,Static Code Analysis,Sonarjs,请帮帮我。我不知道为什么只缺少javascript静态代码分析riport 因此,我有一个maven项目,在前端项目中有多个模块和javascript代码 SonarJS插件已安装 我在运行:mvn清洁安装声纳:声纳 我已经从pom.xml而不是sonar-project.properties配置了sonar 声纳版本:6.7社区版 在sonar概述中,它有java静态代码分析,支持这两个模块,但没有javascript代码 下面是父项目中的pom.xml设置 <?xml versi

请帮帮我。我不知道为什么只缺少javascript静态代码分析riport

因此,我有一个maven项目,在前端项目中有多个模块和javascript代码

  • SonarJS插件已安装
  • 我在运行:mvn清洁安装声纳:声纳
  • 我已经从pom.xml而不是sonar-project.properties配置了sonar
  • 声纳版本:6.7社区版
在sonar概述中,它有java静态代码分析,支持这两个模块,但没有javascript代码

下面是父项目中的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>

但没有任何EXCULD设置

我想说的是,首先,您需要尝试使用sonar.properties文件执行覆盖,以确定您仍然缺少哪些键,最好是js专用键。此外,正确的设置可能取决于您使用的实际声纳版本

我看到的一件事是,您有两次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
管理→ 配置→ JavaSctript
。接下来,您必须找到
JavaScript排除
部分:

您可能还会看到
**/js/**
。在我看来,你应该删除那个条目,因为它毫无意义。如果不能,则必须通过添加以下内容覆盖默认值:

<sonar.javascript.exclusions>**/node_modules/**,**/bower_components/**</sonar.javascript.exclusions>
**/node\u模块/**,**/bower\u组件/**



谢谢,我将更新问题。sonar版本6.7和我删除了错误的coverege报告路径。我首先只需要静态代码分析,没有js coverege riport。我已经设置了
src/main/
。前端模块中的js代码
src/main/resources/static/js/*.js
,但声纳中没有分析riport。Javascript传感器没有运行。添加
src/main/
到前端模块的pom我添加了此选项,但问题是相同的。此外,我用几行调试日志更新了这个问题。请尝试删除
sonar.sources
sonar.test
中的尾部斜杠。如果没有帮助,请添加更多日志(例如
sonar.javascript.exclusions
属性的值是多少?)。我已经删除了那些斜杠,但没有帮助。pom.xml中没有排除设置(另外也没有sonar-project.properties文件),但我在日志中找到了它:
sonar.javascript.exclusions=**/node\u modules/**,**/bower\u components/**,**/js/**
。我想这是一些默认设置?!Idefault仅2个第一()。尝试了解谁添加了最后一个排除项
**/js/**
,这是由于您的文件被排除。非常感谢!这就是问题所在。现在一切都好了
<sonar.javascript.exclusions>**/node_modules/**,**/bower_components/**</sonar.javascript.exclusions>
<sonar.javascript.exclusions></sonar.javascript.exclusions>