问题
I am using sonar-maven-plugin 3.2 and maven 3.3.9. In the parent POM, I have the sonar.projectKey maven property defined. The value is in effect, I can see it from the printout of sonar. But the mvn sonar:sonar step fails, because the maven modules use the same project key value, because the maven property has the same value in all modules. Sonar gives the error:
Project '...' can't have 2 modules with the following key: ...
Is there really no way to have a single sonar project that contains all maven modules? Are all modules must be really different sonar projects?
I am aware that I could use the branch property asa hack, but I would like to avoid doing that. If there is a way to have a maven multi module project in sonar with a single project key, containing all maven modules, that would be the best...
回答1:
According to SonarQube Analysis Parameters:
sonar.projectKey
The project key that is unique for each project. Allowed characters are: letters, numbers, '-', '_', '.' and ':', with at least one non-digit.
When using Maven, it is automatically set to<groupId>:<artifactId>
.
Therefore, remove your sonar.projectKey
configuration and it should work.
(I have been through the same loop).
回答2:
I think I finally found what looks like the right way to do this. In your parent.pom you declare the following properties:
<properties>
<sonar.projectKey>
YourKey
</sonar.projectKey>
<sonar.moduleKey>
${artifactId}
</sonar.moduleKey>
</properties>
Both properties will be inherited by your modules. This will then compile the result into a single Sonar report, tracking the sub-modules under the common projectKey
.
Interestingly the result was:
[INFO] Reactor Summary:
[INFO]
[INFO] parent ................................. SUCCESS [01:14 min]
[INFO] module1................................. SKIPPED
[INFO] module2 ................................ SKIPPED
[INFO] module3 ................................ SKIPPED
I'm therefore not sure, how the exact module resolution was done, but in the end all modules showed up in the report.
回答3:
There must be a way to uniquely identify each component. As Steve C said, you can't have two projects with the same project key. And within a project, modules must also have unique identifiers. Otherwise, analysis of the second "module b" would overwrite the first "module b".
来源:https://stackoverflow.com/questions/43627759/sonar-maven-plugin-same-project-key-for-all-modules-does-not-work