运行SonarQube扫描仪-Java / TypeScript

时间:2019-02-18 11:41:08

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

在jenkin的${WORKSPACE}中的多个文件夹中检出前端和后端代码 ,如下所示

enter image description here

前端代码以Angular(TypeScript)编写,并使用npm

构建

后端代码是用Java编写的,并使用gradlew

构建

使用Jenkins here查阅SonarQube扫描仪的文档。我得到了下面的代码来运行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中的声纳扫描仪安装:

enter image description here

1)def scannerHome = tool 'abc_install';是否可以抓住在詹金斯(Jenkins)中配置的SonarQube扫描仪?

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

1 个答案:

答案 0 :(得分: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
相关问题