Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SonarQube多模块maven项目_Maven_Sonarqube_Sonar Runner - Fatal编程技术网

SonarQube多模块maven项目

SonarQube多模块maven项目,maven,sonarqube,sonar-runner,Maven,Sonarqube,Sonar Runner,对于maven项目,我有以下结构: sonar-project.properties Jenkinsfile parent ->parent ->->pom.xml ->module1 ->->pom.xml ->module2 ->->pom.xml ->module3 ->->pom.xml pom父级: <modules> <module>../module1</module&g

对于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>
我的詹金斯管道是:

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.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
注意:
sonar.java.binaries
对于分析maven项目非常重要


首先更改项目结构,并使父项目成为项目的根项目及其所有模块的子项目。第二,我强烈建议使用使整个配置更容易的。。。(您可以完全忽略sonar-project.properties)。。。有一个包含
。/module..
的父项是一种气味。。。
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