측정하고 싶지 않은 특정 코드 블록에 대해 소나 ( www.sonarsource.org ) 측정을 해제 할 수 있습니까?
예를 들어 Findbugs가 출력하는 "스택 추적 유지"경고가 있습니다. 서버를 떠날 때 클라이언트에게 예외를 알 수없는 경우 (클라이언트에 해당 JAR이 없기 때문에 방금 잡은 실제 예외는 포함하지 않고 메시지를 클라이언트로 다시 전달하고 싶을 수도 있습니다. 예를 들어 예외가 포함되었습니다.
측정하고 싶지 않은 특정 코드 블록에 대해 소나 ( 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("findbugs:UI_INHERITANCE_UNSAFE_GETRESOURCE")
.
Unsupported @SuppressWarnings("squid:S00112")
입니다. 이를 무시하도록 Eclipse를 구성 할 수 있지만 in과 같은 오타 @SuppressWarnings("uncheckedd")
가 감지되지 않습니다.
를 사용하여 특정 경고를 표시하지 않는 것이 좋습니다 @SuppressWarnings("squid:S2078")
.
여러 경고를 억제하려면 다음과 같이하십시오. @SuppressWarnings({"squid:S2078", "squid:S2076"})
//NOSONAR
SonarQube에게 특정 행에 대한 모든 오류를 무시하도록 지시 하는 주석 도 있습니다 .
마지막으로 사용자 인터페이스에 대한 올바른 권한이 있으면 인터페이스에서 직접 오 탐지로 플래그를 발행 할 수 있습니다.
특정 경고를 억제하는 것이 좋습니다 이유는 //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")
소나 5.6에서 오징어 번호를 찾을 수 없으며이 주석도 작동합니다.
@SuppressWarnings({"pmd:AvoidCatchingGenericException", "checkstyle:com.puppycrawl.tools.checkstyle.checks.coding.IllegalCatchCheck"})
squid
Sonar 소스 Java 데이터베이스 (SonarAnalyzer Java) 용입니다. pmd
및 checkstyle
다른 규칙 저장소에 있습니다.
@SuppressFBWarnings
(와의 충돌을 피하기 위해 추가) 올바르게 해석java.lang.SuppressWarnings
하고 무시 하는지 확실하지 않습니다 .