web-dev-qa-db-ja.com

特定のコードでソナーをオフにする

特定のコードブロックのソナー( www.sonarsource.org )測定をオフにすることは可能ですか?

例として、Findbugsが出力する「スタックトレースの保存」警告があります。サーバーを離れるときに、クライアントがその例外を知らない場合は、クライアントにメッセージを渡すだけでよいのです。たとえば、例外が含まれていました)。

121
Ant Kutschera

これは FAQ です。警告をトリガーする行に//NOSONARを追加できます。ただし、@ SuppressFBWarningsアノテーションを追加するFindBugsメカニズムを使用することをお勧めします。

@edu.umd.cs.findbugs.annotations.SuppressFBWarnings(
    value = "NAME_OF_THE_FINDBUGS_RULE_TO_IGNORE",
    justification = "Why you choose to ignore it")
60
JB Nizet

SuppressWarningsを使用してクラスまたはメソッドに注釈を付けることができます

@Java.lang.SuppressWarnings("squid:S00112")

squid:S00112この場合、Sonarの問題IDです。このIDはSonar UIで確認できます。問題のドリルダウンに進みます。警告を抑制したい問題を見つけます。コードの赤い問題ボックスには、特定の問題の定義を含むルールリンクがあります。クリックすると、ページの上部にIDが表示されます。

175
maestr0

@SuppressWarnings("squid:S2078")を使用して特定の警告を抑制することをお勧めします。

複数の警告を抑制するには、次のようにできます@SuppressWarnings({"squid:S2078", "squid:S2076"})

特定の行のすべてのエラーを無視するようSonarQubeに指示する//NOSONARコメントもあります。

最後に、ユーザーインターフェイスに対する適切な権限がある場合は、インターフェイスから直接誤検知としてフラグを発行できます。

特定の警告を抑制することをお勧めする理由は、//NOSONARを使用する代わりに特定の問題をブロックし、誤ってコードに忍び寄るSonarの問題を引き起こすことをお勧めするためです。

詳細については、 FAQ をご覧ください。

注:GáborBakosは、現在404である古いFAQを指しています。これは私にとって最初のグーグルの結果ですので、同じ質問があるかもしれない他の人を助けたいです

編集:6/30/16 SonarQubeはSonarLintと呼ばれるようになりました

イカ番号を見つける方法を知りたい場合。 Sonarメッセージ(例:Remove this method to simply inherit it.)をクリックすると、Sonarの問題が展開されます。

左下には、イカ番号があります(例:squid:S1185 Maintainability> Understandability)

それで、あなたは@SuppressWarnings("squid:S1185")によってそれを抑制することができます

67
wiredniko

コードで対処できない場合は、警告が表示される行で// NOSONARを使用します。できます!

4
Jain

ソナー5.6でイカ番号を見つけることができません。この注釈も機能します。

@SuppressWarnings({"pmd:AvoidCatchingGenericException", "checkstyle:com.puppycrawl.tools.checkstyle.checks.coding.IllegalCatchCheck"})
3
Noker