【问题标题】:Running SonarQube scanner - Java/TypeScript运行 SonarQube 扫描仪 - Java/TypeScript
【发布时间】:2019-07-11 18:59:08
【问题描述】:

签出 jenkin 的 ${WORKSPACE} 中多个文件夹中的前端和后端代码 ,如下图

前端代码用 Angular(TypeScript) 编写并使用 npm 构建

后端代码用 Java 编写并使用 gradlew 构建


参考 Jenkins 的 SonarQube 扫描仪文档,here。我得到以下代码来运行 SonarQube 扫描仪以进行多语言(角度和 Java)静态代码分析

node {
  stage('SCM') {
    git 'https://github.com/foo/bar.git'
  }
  stage('SonarQube analysis') {
    // requires SonarQube Scanner 2.8+
    def scannerHome = tool 'SonarQube Scanner 2.8';
    withSonarQubeEnv('My SonarQube Server') {
      sh "${scannerHome}/bin/sonar-scanner"
    }
  }
}

按照下面的截图,下面是jenkins中的声纳扫描仪安装:

1) def scannerHome = tool 'abc_install'; 是否抓取在 Jenkins 中配置的 SonarQube 扫描仪?

2) sh "${scannerHome}/bin/sonar-scanner" 是否对 TypeScript 和 Java 执行静态代码分析?在front-end-code & backend-code 文件夹中

【问题讨论】:

    标签: jenkins sonarqube jenkins-pipeline sonarqube-scan jenkins-groovy


    【解决方案1】:

    请看答案:

    1) 当然。在 Jenkins 中,您可以配置许多具有不同版本的 SonarQube 扫描仪,并且通过构造 def scannerHome = tool '<scanner name, configured in Jenkins>' 您可以获取代码所需的任何扫描仪

    2) 是的,它会的。但是,我建议拆分后端和前端并为每个部分指定语言。另外,我会从静态代码扫描中删除带有“@tmp”的文件夹。请在此处查看可以添加到扫描仪的参数列表:https://docs.sonarqube.org/latest/analysis/analysis-parameters/

    后端小例子:

    ${scannerHome}/bin/sonar-scanner \
                                    -Dsonar.projectKey=project-${ENVIRONMENT} \
                                    -Dsonar.sources=portal,common \
                                    -Dsonar.java.binaries=portal,common \
                                    -Dsonar.java.libraries=/**/*.jar \
                                    -Dsonar.exclusions=portal/src/test/**,portal/src/intest/** \
                                    -Dsonar.coverage.jacoco.xmlReportPaths=portal/build/reports/jacoco/test/jacocoTestReport.xml
    

    【讨论】:

      猜你喜欢
      • 2017-03-15
      • 2023-03-21
      • 1970-01-01
      • 2017-03-24
      • 2017-02-12
      • 2018-08-01
      • 1970-01-01
      • 2016-12-30
      • 2017-02-20
      相关资源
      最近更新 更多