【问题标题】:How to configure Sonarqube scanner for java and javascript in the same project如何在同一个项目中为 java 和 javascript 配置 Sonarqube 扫描仪
【发布时间】:2017-10-24 00:20:03
【问题描述】:

我一直在尝试为包含 java 模块(核心)和 javascript 模块(web)的 Maven 项目设置声纳扫描仪。

我可以在本地 sonarqube 服务器或 javascript 上扫描并显示 java 覆盖率数据,但不能同时进行。

这是我的 sonar-project.properties 文件,其中 sonar.modules 属性可以具有 4 个值之一:

### below: select just one of the 4 possible values for sonar.modules
sonar.modules = core --> get java coverage data
sonar.modules = web --> get javascript coverage data
sonar.modules = core,web --> get only java coverage data
sonar.modules = web,core --> get only java coverage data

sonar.sources=src

# javascript coverage report
web.sonar.exclusions=src/main/webapp/js/lib/**/*.js
web.sonar.javascript.lcov.reportPath = test-output/coverage/lcov.info

# java coverage report
core.sonar.java.binaries = target/classes
core.sonar.java.libraries = ../web/target/scheduler-web-3.5.0-SNAPSHOT/WEB-INF/lib
core.sonar.java.test.libraries = ../web/target/scheduler-web-3.5.0-SNAPSHOT/WEB-INF/lib
core.sonar.jacoco.reportPath = target/jacoco.exec
core.sonar.junit.reportsPath = target/surefire-reports
core.sonar.jacoco.reportMissing.force.zero = true

我的解决方案的关键,基于以下接受的答案:

  • 顶级 POM 没有变化。

  • 添加到 web/pom.xml:

<properties>
    <sonar.javascript.lcov.reportPath>test-output/coverage/lcov.info</sonar.javascript.lcov.reportPath>
</properties>

基本上声纳不知道在哪里可以找到我的 lcov 文件。

【问题讨论】:

    标签: javascript java sonarqube code-coverage


    【解决方案1】:

    您不应使用带有专用 sonar-project.properties 文件的 SonarQube 扫描仪来运行您的分析 - 而应依赖 Scanner for Maven

    要了解如何做到这一点,只需看看 SonarQube 本身(包含 Java 和 JS)是如何分析的:

      <properties>
        <!-- self-analysis -->
        <sonar.sources>src/main/js,src/main/less</sonar.sources>
        <sonar.tests>src/main/js</sonar.tests>
        <sonar.test.inclusions>src/main/js/**/__tests__/**</sonar.test.inclusions>
        <sonar.exclusions>src/main/js/libs/third-party/**/*,src/main/js/libs/require.js,src/main/js/**/__tests__/**</sonar.exclusions>
        <yarn.script>build</yarn.script>
    </properties>

    【讨论】:

    • 以上答案让我走上了正轨。我为我感兴趣的两个模块中的每一个都添加了 POM。
    • 很好奇为什么我的问题被否决了。愿意修改。
    猜你喜欢
    • 2018-03-17
    • 2020-11-02
    • 2017-02-05
    • 2016-12-10
    • 2018-04-01
    • 1970-01-01
    • 2017-10-27
    • 2017-12-06
    • 2019-07-11
    相关资源
    最近更新 更多