问题
We recently started using SonarQube. We have found some rules that are suggested by SonarQube but we want to ignore them or give them a low priority and even configure the time suggested by SonarQube. For e.g
We want to avoid the rule (and/or configure the priority and time suggested by SonarQube) for
- Document this public class. and
- Complete the task associated to this TODO comment.
I couldn’t find a way to configure this rules to be ignored. We want this kind of rules to be ignored for the whole project not specific classes.
Configuring this values would help us to have a better time estimation to fix major issues and give low priority for the rules like the above two. We are using SonarQube 6
I appericiate your advice.
回答1:
As noted in the comments, all you have to do is remove the rules from your profile or edit them to lower their priority. You need the Global Administer Quality Profiles permission to do that. Once you're logged in with that permission, go to the Rules interface, search for a rule you want to deactivate, select the rule, click on it, and Deactivate it from the relevant profile.
回答2:
If you have the id of the rule ypu want to ignore, then you can add the SuppressWarnings for that
Example:
@SuppressWarnings("squid:S0016")
I dont like this too much and use to add the comment //NOSONAR that tells SonarQube to ignore all errors for a specific line.
Example2:
If I do this:
System.setErr(System.out);
ConsoleHandler h = new ConsoleHandler();
System.setErr(err);
my sonar complains asking me to use logger instead of system.out...
therefore I can silent the warning doing:
System.setErr(System.out); //NOSONAR
ConsoleHandler h = new ConsoleHandler();
System.setErr(err);
来源:https://stackoverflow.com/questions/39109228/how-can-we-ignore-some-sonarqube-rules-in-java