【发布时间】:2021-02-09 19:16:12
【问题描述】:
我有一个 Maven 项目的以下结构:
sonar-project.properties
Jenkinsfile
parent
->parent
->->pom.xml
->module1
->->pom.xml
->module2
->->pom.xml
->module3
->->pom.xml
pom 父母:
<modules>
<module>../module1</module>
<module>../module2</module>
<module>../module3</module>
</modules>
sonar-project.properties:
sonar.sourceEncoding=UTF-8
sonar.projectKey=com.company.project:parent
#List of module identifiers
sonar.modules=../module1,../module2,../module3
#module1 settings
module1.sonar.projectName=com.company.project:module1
module1.sonar.sources=src/main/java
#module2 settings
module2.sonar.projectName=com.company.project:module2
module2.sonar.sources=src/main/java
#module3 settings
module3.sonar.projectName=com.company.project:module3
module3.sonar.sources=src/main/java
我的 Jenkins 管道是:
steps {
script {
dir('parent') {
withSonarQubeEnv('SONAR') {
sh "sonar-scanner -Dproject.settings=../sonar-project.properties -Dsonar.version=${params.buildVersion} -Dsonar.projectVersion=${params.projectVersion}"
}
}
}
}
我有这个错误:
ERROR: You must define the following mandatory properties for 'com.company.project:parent:../module1': sonar.sources
【问题讨论】:
-
首先改变你的项目结构,让父模块成为你项目的根,所有模块都是它的子模块。其次,我强烈建议使用sonar-maven-plugin,这使得整个配置更容易......(你可以完全省略sonar-project.properties)......拥有一个包含
<module>../module..</module>的父级是一种气味......跨度>
标签: maven sonarqube sonar-runner