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

前端代码是用TypeScript编写的,并使用npm构建。
后端代码是用Java编写的,使用gradlew构建。
参考SonarQube扫描仪与Jenkins,这里的文档。下面是运行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"
}
}
}下面是屏幕截图,下面是詹金斯的声纳扫描仪安装:

1) def scannerHome = tool 'abc_install';是否抓取了在Jenkins中配置的SonarQube扫描仪?
2) sh "${scannerHome}/bin/sonar-scanner"是否为TypeScript和Java执行静态代码分析?在front-end-code & backend-code文件夹中
发布于 2020-06-18 11:26:49
请见答案:
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.xmlhttps://stackoverflow.com/questions/54746498
复制相似问题