I have a azure repo called ‘abc’ which has two folders under services kdirectory ‘services/project1 and services/project2’
I run sonarprepare, sonaranalyze, sonarpublish for both the projects seaparately in a job like below.
- job:
displayName: Code Quality Project1
steps:
- task: Maven@4
displayName: mvn install
inputs:
mavenPomFile: 'services/Project1/pom.xml'
goals: 'clean verify'
publishJUnitResults: true
javaHomeOption: 'JDKVersion'
jdkVersionOption: '17'
mavenVersionOption: 'Default'
mavenAuthenticateFeed: true
effectivePomSkip: true
sonarQubeRunAnalysis: false
checkStyleRunAnalysis: true
options: -B -ntp
- task: SonarQubePrepare@5
inputs:
SonarQube: $(sonarqubeServiceConnectionName)
scannerMode: 'CLI'
configMode: 'manual'
cliProjectKey: $(sonarqubeProjectKey)
cliProjectVersion: $(Build.BuildNumber)
cliSources: $(System.DefaultWorkingDirectory)/services/project1
extraProperties: |
sonar.java.binaries=$(System.DefaultWorkingDirectory)/services/project1/**/target/classes
sonar.coverage.jacoco.xmlReportPaths=$(System.DefaultWorkingDirectory)/services/project1/aldi-nord-codecoverage-aggregator/target/site/jacoco-aggregate/jacoco.xml
sonar.coverage.exclusions=**/test/**
sonar.junit.reportPaths=$(System.DefaultWorkingDirectory)/services/project1/**/target/surefire-reports
sonar.java.checkstyle.reportPaths=$(System.DefaultWorkingDirectory)/services/project1/target/checkstyle-result.xml
- task: SonarQubeAnalyze@5
- task: SonarQubePublish@5
inputs:
pollingTimeoutSec: '300'
- job:
displayName: Code Quality Project2
steps:
- task: Maven@4
displayName: mvn install
inputs:
mavenPomFile: 'services/Project2/pom.xml'
goals: 'clean verify'
publishJUnitResults: true
javaHomeOption: 'JDKVersion'
jdkVersionOption: '17'
mavenVersionOption: 'Default'
mavenAuthenticateFeed: true
effectivePomSkip: true
sonarQubeRunAnalysis: false
checkStyleRunAnalysis: true
options: -B -ntp
- task: SonarQubePrepare@5
inputs:
SonarQube: $(sonarqubeServiceConnectionName)
scannerMode: 'CLI'
configMode: 'manual'
cliProjectKey: $(sonarqubeProjectKey)
cliProjectVersion: $(Build.BuildNumber)
cliSources: $(System.DefaultWorkingDirectory)/services/Project2
extraProperties: |
sonar.java.binaries=$(System.DefaultWorkingDirectory)/services/Project2/target/classes
sonar.coverage.jacoco.xmlReportPaths=$(System.DefaultWorkingDirectory)/services/Project2/target/site/jacoco/jacoco.xml
sonar.junit.reportPaths=$(System.DefaultWorkingDirectory)/services/Project2/target/surefire-reports
sonar.coverage.exclusions=**/test/**
- task: SonarQubeAnalyze@5
- task: SonarQubePublish@5
inputs:
pollingTimeoutSec: '300'
In the extension page, When one of the analysis is complete and while the other build was running, I see one report is created which shows result for project2 code (finished first).
When the project1 steps are completed, the project 2 report is overwritten with project 1’s result.
Anyways I see two reports under extenstions in azure devops, but both has same code project1.
I want two reports generated for the repository for project 1 and project 2 showing respective results. Is it possible.