[java] 특정 코드에 대해 소나 끄기

측정하고 싶지 않은 특정 코드 블록에 대해 소나 ( www.sonarsource.org ) 측정을 해제 할 수 있습니까?

예를 들어 Findbugs가 출력하는 “스택 추적 유지”경고가 있습니다. 서버를 떠날 때 클라이언트에게 예외를 알 수없는 경우 (클라이언트에 해당 JAR이 없기 때문에 방금 잡은 실제 예외는 포함하지 않고 메시지를 클라이언트로 다시 전달하고 싶을 수도 있습니다. 예를 들어 예외가 포함되었습니다.



답변

이것은 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")


답변

SuppressWarnings로 클래스 나 메소드에 주석을 달 수 있습니다

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

이 경우 squid : S00112 는 Sonar 문제 ID입니다. Sonar UI에서이 ID를 찾을 수 있습니다. 이슈 드릴 다운으로 이동합니다. 경고를 표시하지 않으려는 문제를 찾으십시오. 코드의 빨간색 문제 상자에는 주어진 문제의 정의가 포함 된 규칙 링크가 있습니다. 클릭하면 페이지 상단에 ID가 표시됩니다.


답변

를 사용하여 특정 경고를 표시하지 않는 것이 좋습니다 @SuppressWarnings("squid:S2078").

여러 경고를 억제하려면 다음과 같이하십시오. @SuppressWarnings({"squid:S2078", "squid:S2076"})

//NOSONARSonarQube에게 특정 행에 대한 모든 오류를 무시하도록 지시 하는 주석 도 있습니다 .

마지막으로 사용자 인터페이스에 대한 올바른 권한이 있으면 인터페이스에서 직접 오 탐지로 플래그를 발행 할 수 있습니다.

특정 경고를 억제하는 것이 좋습니다 이유는 //NOSONAR실수로 코드에서 소나가 발생하는 대신 Sonar 문제 를 사용하는 대신 특정 문제를 차단하는 것이 좋습니다 .

FAQ 에서 자세한 내용을 읽을 수 있습니다

참고 : Gábor Bakos는 현재 404 인 이전 FAQ를 가리키고 있습니다. 이것은 첫 번째 Google 검색 결과이므로 동일한 질문이있는 다른 사람을 돕고 싶습니다.

편집 : 6/30/16 SonarQube는 이제 SonarLint라고합니다.

오징어 번호를 찾는 방법이 궁금한 경우. Sonar 메시지 (예 :)를 클릭 Remove this method to simply inherit it.하면 Sonar 문제가 확장됩니다.

왼쪽 하단에는 오징어 번호가 있습니다 (예 : squid:S1185유지 관리 성> 이해성).

그럼 당신은 그것을 억제 할 수 있습니다 @SuppressWarnings("squid:S1185")


답변

코드에 도움이되지 않는 경우 경고가 표시되는 줄에 // NOSONAR을 사용하십시오. 효과가있다!


답변

소나 5.6에서 오징어 번호를 찾을 수 없으며이 주석도 작동합니다.

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


답변