2014-04-04 55 views
4

PMD和SonarQube是一個很好的工具,但我在嘗試抑制PMD警告時遇到了問題。@SuppressWarnings多個規則不起作用

我們用龍目島在我們的項目很多,所以很多模型類的有: @SuppressWarnings(「PMD.UnusedPrivateField」) 作爲類級別的註解。

這工作正常。

的問題是,如果我wan't忽略一個更規則,我希望下面的語法: @SuppressWarnings(值= {「PMD.UnusedPrivateField」,「PMD.SingularField」}) 這看起來像正確的語法一樣,也閱讀PMD註釋的實現。

但是,這似乎不起作用: 現在沒有任何規則被抑制。

+0

您是否在使用java.lang.SuppressWarnings?也許你不小心從不同的包中導入了註釋。 –

+0

我使用正確的。 我也使用findbugs,那麼它的: @ edu.umd.cs.findbugs.annotations.SuppressWarnings(value = {「EI_EXPOSE_REP2」},justification =「Verified」) –

+0

FindBugs註釋將不適用於PMD 。你能發佈一個簡化的示例文件來重現問題嗎? –

回答

6

我本來期望這種格式(不帶「值=」):

@SuppressWarnings({"PMD.UnusedPrivateField", "PMD.SingularField"}) 

類似的格式在PMD 5.1.3工作對我來說(雖然Eclipse的抱怨他們不被支持)。

+0

這正是如此,謝謝:-) 我自己工作過,但忘記更新我的問題。 –

1

由於@colbadhombre寫道:

@SuppressWarnings({"PMD.UnusedPrivateField", "PMD.SingularField"}) 

的伎倆。

關於Eclipse:
打開窗口 - >首選項 - > Java的>反編譯>錯誤/警告

  • 「未處理的令牌 '@SuppressWarnings':」 可以被設置爲忽略
  • 同樣如果警告已啓用,則「未使用」@SuppressWarnings「令牌」