Jenkins 运行SonarQube扫描程序-Java/TypeScript

Jenkins 运行SonarQube扫描程序-Java/TypeScript,jenkins,sonarqube,jenkins-pipeline,sonarqube-scan,jenkins-groovy,Jenkins,Sonarqube,Jenkins Pipeline,Sonarqube Scan,Jenkins Groovy,在jenkin的${WORKSPACE} ,如下所示 前端代码是用Angular(TypeScript)编写的,并使用npm 后端代码用Java编写,并使用gradlew 请参考Jenkins的SonarQube扫描仪文档。我得到了下面的代码,可以运行SonarQube scanner进行多语言(angular和java)静态代码分析 node { stage('SCM') { git 'https://github.com/foo/bar.git' } stage('So

在jenkin的
${WORKSPACE}
,如下所示

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

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


请参考Jenkins的SonarQube扫描仪文档。我得到了下面的代码,可以运行SonarQube scanner进行多语言(angular和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"
    }
  }
}

根据以下屏幕截图,以下是詹金斯的声纳扫描仪安装:

1) 是否
def scannerHome=工具“abc_安装”抓取Jenkins中配置的SonarQube扫描仪

2)
sh“${scannerHome}/bin/sonar scanner”
是否对TypeScript和Java执行静态代码分析?在
前端代码
后端代码
文件夹中

请查看答案:

1) 当然。在Jenkins中,您可以配置许多不同版本的SonarQube扫描仪,并且使用construction
def scannerHome=tool''
您可以获取代码所需的任何扫描仪

2) 是的,会的。但是,我建议将后端和前端分开,并为每个部分指定语言。另外,我会从静态代码扫描中删除带有“@tmp”的文件夹。请参见此处可添加到扫描仪的参数列表:

后端的小示例:

${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