如何在同一个项目中为java和javascript配置Sonarqube扫描程序

我一直在尝试为包含 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:

06001

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

最佳答案 您不应将SonarQube扫描仪与专​​用的sonar-project.properties文件一起使用来运行分析 – 而是依赖于 Scanner for Maven.

要了解如何执行此操作,只需看看如何分析SonarQube本身(包含Java和JS):

>继续GitHub repository
>并查看Web模块的server/sonar-web/pom.xml文件,您将注意到:

  <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>
点赞