everydayminder
Hudson에 설정한 maven 프로젝트에 findbugs를 설정하자. pom.xml에 설정할 부분은 build와 reporting 두 곳이다. org.codehaus.mojo findbugs-maven-plugin package check .. 사이에 다음을 추가한다. org.codehaus.mojo findbugs-maven-plugin 그리고, 다음 부분을 추가하여, reporting 부분을 정의한다. 프로젝트 설정에서, FindBugs부분을 선택한다. 저장 후, 다시 Build Now를 해보자. 성공하면, FindBugs Warnings 메뉴가 나타난다. 문제가 있는 클래스를 찾아가면, FindBugs가 개선 점을 알려준다.
"내가 작성한 코드는 잘 작성한 것일까?" 내가 작성한 코드가 이상없이 동작하는지 검사하기 위해, JUnit 등을 사용하여 테스트를 수행해 왔다면, 이제 이런 질문을 던져볼 만도 하다. 프로그래머가 작성한 코드는 "논리"의 집합이다. 그렇다면, 테스트케이스는 "그 논리가 적합한가?" 혹은 "그 논리에 헛점이 있는가?"를 검증하기 위한 것이라고 할 수 있을 것이다. 그러면, 그 "논리를 세우는 방법이 잘 되어 있는가?"를 검증하는 방법도 있을 법하다. 그래서, "코드검사"를 수행한다!! 코드 검사는 내가 작성하는 코드가 표준에 맞는지, 어떤 잠재적인 오류 패턴을 내포하고 있는지 등을 검사해 준다. CheckStyle, PMD, FindBugs 등 여러 가지가 있으나, FindBugs를 hudson에 연동하..
FindBugs - EQ_COMPARETO_USE_OBJECTS_EQUALS 사용자가 compareTo()를 override 했을 경우, 볼 수 있는 warning이다. FindBugs의 code inspection에 따르면, This class defines a `compareTo(...)` method but inherits its `equals()` method from `java.lang.Object`. Generally, the value of compareTo should return zero if and only if equals returns true. If this is violated, weird and unpredictable failures will occur in classes s..