在jenkin的${WORKSPACE}
中的多个文件夹中检出前端和后端代码
,如下所示
前端代码以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中的声纳扫描仪安装:
1)def scannerHome = tool 'abc_install';
是否可以抓住在詹金斯(Jenkins)中配置的SonarQube扫描仪?
2)sh "${scannerHome}/bin/sonar-scanner"
是否同时为TypeScript和Java执行静态代码分析?在front-end-code
和backend-code
文件夹中
答案 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