Reputation: 2714
I'm using a local instance of Sonar without a centralized infrastructure. In order to keep the configuration of my project in the pom.xml, I want to configure the project through maven and not through the Sonar UI. For me this has the advantage of keeping things in one place and other developers don't have to configure their local Sonar instance, just unpack and play.
The doc on howto configure the sonar.exclusions
property through maven is readily available but the format for sonar.issue.ignore.multicriteria
is unclear.
How can you configure sonar.issue.ignore.multicriteria
through maven?
Upvotes: 20
Views: 24688
Reputation: 288
Suppress the sonar warnings from the sonar.gradle file for the android project.
Add this property on sonar.gradle file.
property "sonar.issue.ignore.multicriteria","e1"
property "sonar.issue.ignore.multicriteria.e1.ruleKey","xml:S5604"
property "sonar.issue.ignore.multicriteria.e1.resourceKey","**/AndroidManifest.xml"
This is mainly for the android read and write permission security hotspots on sonarqube server.
Make sure path is perfect otherwise it would not work. Prefer this link for path. https://docs.sonarqube.org/latest/project-administration/narrowing-the-focus/
Upvotes: 0
Reputation: 2714
After stepping through the code the format is:
<properties>
<sonar.issue.ignore.multicriteria>e1,e2</sonar.issue.ignore.multicriteria>
<sonar.issue.ignore.multicriteria.e1.ruleKey>squid:S00100</sonar.issue.ignore.multicriteria.e1.ruleKey>
<sonar.issue.ignore.multicriteria.e1.resourceKey>**/*Steps.java</sonar.issue.ignore.multicriteria.e1.resourceKey>
<sonar.issue.ignore.multicriteria.e2.ruleKey>squid:S1118</sonar.issue.ignore.multicriteria.e2.ruleKey>
<sonar.issue.ignore.multicriteria.e2.resourceKey>**/PropertyPlaceholderConfig.java</sonar.issue.ignore.multicriteria.e2.resourceKey>
</properties>
The keys e1,e2 can be chosen arbitrarily as long as they are used with .ruleKey and .resourceKey in the depending properties.
The same works for sonar.issue.ignore.block:
<sonar.issue.ignore.block>e1</sonar.issue.ignore.block>
<sonar.issue.ignore.block.e1.beginBlockRegexp>@SonarIgnore</sonar.issue.ignore.block.e1.beginBlockRegexp>
<sonar.issue.ignore.block.e1.endBlockRegexp></sonar.issue.ignore.block.e1.endBlockRegexp>
Upvotes: 32