SonarQube多模块maven项目
SonarQube multi module maven project
我的 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>
声纳-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
您错过了添加两个强制性声纳分析属性。
这两个是:-Dsonar.sources=src
和-Dsonar.java.binaries=**/*
您可以在 Jenkins 步骤中提及这两个属性,例如
sh "sonar-scanner -Dproject.settings=../sonar-project.properties -Dsonar.version=${params.buildVersion} -Dsonar.projectVersion=${params.projectVersion} -Dsonar.sources=src -Dsonar.java.binaries=**/*"
或
您可以将它们包含在 sonar-project.properties
中,如
sonar.sourceEncoding=UTF-8
sonar.projectKey=com.company.project:parent
sonar.sources=src
sonar.java.binaries=**/*
#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
Note: sonar.java.binaries
is important for analysis of maven projects.
我的 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>
声纳-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
您错过了添加两个强制性声纳分析属性。
这两个是:-Dsonar.sources=src
和-Dsonar.java.binaries=**/*
您可以在 Jenkins 步骤中提及这两个属性,例如
sh "sonar-scanner -Dproject.settings=../sonar-project.properties -Dsonar.version=${params.buildVersion} -Dsonar.projectVersion=${params.projectVersion} -Dsonar.sources=src -Dsonar.java.binaries=**/*"
或
您可以将它们包含在 sonar-project.properties
中,如
sonar.sourceEncoding=UTF-8
sonar.projectKey=com.company.project:parent
sonar.sources=src
sonar.java.binaries=**/*
#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
Note:
sonar.java.binaries
is important for analysis of maven projects.