Is it possible to turn off sonar (www.sonarsource.org) measurements for specific blocks of code, which one doesn't want to be measured?
An example is the "Preserve Stack Trace" warning which Findbugs outputs. When leaving the server, I might well want to only pass the message back to the client, not including the actual exception which I just caught, if that exception is unknown to the client (because the client doesn't have the JAR in which that exception was contained for example).
I recommend you try to suppress specific warnings by using
@SuppressWarnings("squid:S2078")
.For suppressing multiple warnings you can do it like this
@SuppressWarnings({"squid:S2078", "squid:S2076"})
There is also the
//NOSONAR
comment that tells SonarQube to ignore all errors for a specific line.Finally if you have the proper rights for the user interface you can issue a flag as a false positive directly from the interface.
The reason why I recommend suppression of specific warnings is that it's a better practice to block a specific issue instead of using
//NOSONAR
and risk a Sonar issue creeping in your code by accident.You can read more about this in the FAQ
Note: Gábor Bakos is pointing to the older FAQ that now 404s. This is the first google result for me so I want to help anyone else that might have the same question
Edit: 6/30/16 SonarQube is now called SonarLint
In case you are wondering how to find the squid number. Just click on the Sonar message (ex.
Remove this method to simply inherit it.
) and the Sonar issue will expand.On the bottom left it will have the squid number (ex.
squid:S1185
Maintainability > Understandability)So then you can suppress it by
@SuppressWarnings("squid:S1185")
Use //NOSONAR on the line you get warning if it is something you cannot help your code with. It works!
This is a FAQ. You can put
//NOSONAR
on the line triggering the warning. I prefer using the FindBugs mechanism though, which consists in adding the @SuppressFBWarnings annotation:You can annotate a class or a method with SuppressWarnings
squid:S00112 in this case is a Sonar issue ID. You can find this ID in the Sonar UI. Go to Issues Drilldown. Find an issue you want to suppress warnings on. In the red issue box in your code is there a Rule link with a definition of a given issue. Once you click that you will see the ID at the top of the page.
I not be able to find squid number in sonar 5.6, with this annotation also works: