Piy*_*rge 5 maven jenkins sonarqube jenkins-pipeline angular
我有一个 angularjs 项目。该项目有一个 Jenkinsfile(声明性管道),可以在推送完成后构建 jenkinsjob。我试图在此处包含声纳动作以进行静态扫描。根据我的场景搜索了很多角度项目。但我检查的大多数示例都有 pom.xml 文件(因为它们要么是与 java 相关的项目)。
我在根目录中编写了sonar-projects.properties并添加了所有必要的项目:
sonar.projectKey=apols:webproject
sonar.projectName=webproject
sonar.projectVersion=1.0.0
sonar.projectDescription=Static analysis for the AppName
sonar.sources=www
sonar.exclusions=**/node_modules/**,**/*.spec.ts,**/dist/**,**/docs/**,**/*.js,**/coverage/**
sonar.tests=www
sonar.test.inclusions=**/*.spec.ts
sonar.ts.tslint.configPath=tslint.json
sonar.javascript.lcov.reportPaths=coverage/lcov.info
sonar.ts.coverage.lcovReportPath=coverage/lcov.info
Run Code Online (Sandbox Code Playgroud)
我的Jenkinsfile 的声纳扫描部分 -
stage('Sonarqube') {
steps {
container('maven') {
script {
withSonarQubeEnv('SonarQube') {
sh 'mvn clean package sonar:sonar'
}
timeout(time: 10, unit: 'MINUTES') {
waitForQualityGate abortPipeline: true
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我在 jenkins 中使用 maven 容器。
当 jenkins 作业运行时,当它在 Jenkinsfile - 中执行此行时sh 'mvn clean package sonar:sonar' ,它会检查pom.xml文件并失败。那么我如何将其指向我的sonar-projects.properties。请帮忙
You have to execute native SonarQube Scanner instead of SonarQube Scanner for Maven.
stage('Sonarqube') {
steps {
container('SonarQubeScanner') {
withSonarQubeEnv('SonarQube') {
sh "/usr/local/sonar-scanner"
}
timeout(time: 10, unit: 'MINUTES') {
waitForQualityGate abortPipeline: true
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
container('SonarQubeScanner') and sh "/usr/local/sonar-scanner" are just examples, but there are many docker containers with SonarQube Scanner, see Docker Hub.
Read more about Analyzing with SonarQube Scanner.
How to do it without containers: How to execute SonarQube scanner in Jenkins Declarative Pipeline without Maven and Docker
| 归档时间: |
|
| 查看次数: |
6932 次 |
| 最近记录: |