【问题标题】:Setup Sonar Runner + cobertura for multi module projects为多模块项目设置 Sonar Runner + cobertura
【发布时间】:2017-12-14 10:47:05
【问题描述】:

下面是我的项目结构

App XYX
   +- pom.xml
   +-SubfOlder
   +- Module 1
      +- pom.xml 
   +- Module 2
      +- pom.xml 
   +- Module3
      +- pom.xml 
   +- Module4
      +- pom.xml
   .......
   .......
   +- Module10
      +- pom.xml

我目前正在使用声纳扫描仪 v2.5.1 作为 Jenkins 后期构建任务。我不确定如何为我所有的 10 个模块定义 sonar.sources。

我浏览了文档:https://docs.sonarqube.org/display/SCAN/Advanced+SonarQube+Scanner+Usages 但我不想一一定义所有 10 个模块。另外,如果有 50 多个模块怎么办。

任何建议如何处理这种情况。谢谢。

【问题讨论】:

  • 如果任何一个答案是正确的,请考虑将其标记为正确以帮助有需要的人

标签: java xml maven sonarqube cobertura


【解决方案1】:

不幸的是,属性中的sonar.sources 无法识别通配符,因此您唯一能做的就是手动将它们全部列出,用逗号分隔。我遇到了这个问题,并且有大约 20 个单独的项目要写入属性线。这是我的属性的样子:

sonar.projectKey=xyz
sonar.projectName=xyz
sonar.sources=${WORKSPACE}/client-xyz/,${WORKSPACE}/client-yzx/,${WORKSPACE}/server-xyz/,${WORKSPACE}/server-yzx/,${WORKSPACE}/common-xyz/,${WORKSPACE}/common-yzx/,${WORKSPACE}/zxy-adapter-mq,${WORKSPACE}/zxy-api-yzx,${WORKSPACE}/zxy-common-yzx,${WORKSPACE}/zxy-file-base,${WORKSPACE}/zxy-file-yzx,${WORKSPACE}/zxy-init-yzx,${WORKSPACE}/zxy-jms-yzx,${WORKSPACE}/zxy-messaging-api,${WORKSPACE}/zxy-messaging-in-yzx,${WORKSPACE}/zxy-messaging-out-yzx,${WORKSPACE}/zxy-ws-gen-yzx,${WORKSPACE}/zxy-ws-in-yzx
sonar.java.binaries=**/target/*
sonar.tests=${WORKSPACE}/test-yzx/
sonar.dynamicAnalysis=reuseReports
sonar.core.codeCoveragePlugin=cobertura
sonar.java.coveragePlugin=cobertura
sonar.verbose=false
sonar.showProfiling=true
sonar.ws.timeout=180
sonar.junit.reportPaths=${WORKSPACE}/test-yzx/junit/
sonar.cobertura.reportPath=${WORKSPACE}/test-yzx/cobertura/coverage.xml
sonar.cobertura.utReportPath=${WORKSPACE}/test-yzx/cobertura/coverage.xml
sonar.java.cobertura.reportPath=${WORKSPACE}/test-yzx/cobertura/coverage.xml
sonar.java.coverage.reportPaths=${WORKSPACE}/test-yzx/cobertura/
sonar.coverage.dtdVerification=false
sonar.scm.disabled=true

【讨论】:

    【解决方案2】:

    使用 maven sonar:sonar 目标。如果已经设置了maven,那么使用sonar-project.properties会更方便。

    【讨论】:

    • 感谢您的调查。是的,这是一个选择。但不幸的是,我的团队想要这种方式。如果它的 sonar:sonar 我如何覆盖所有 10 个模块并将结果聚合到单个 coverage.xml 并将其传递给 sonar 。再次感谢
    猜你喜欢
    • 2012-01-19
    • 1970-01-01
    • 2012-09-23
    • 2010-11-28
    • 2014-03-15
    • 2015-12-21
    • 2018-01-30
    • 1970-01-01
    • 2012-02-19
    相关资源
    最近更新 更多