2013-02-04 3 views
39

나는 이클립스와 다른 CLI에서 실행할 수있는 자바 linter를 찾는데 노력해 왔는데, git이나 자동화 된 빌드 스크립트에서 커밋 훅 (commit hook)으로 부를 수있다. 그런 것이 있습니까?간단한 CLI Java linter가 있습니까?

이상하게도 사용되지 않은 가져 오기 및 변수를 확인하고 스타일 지침을 따르고 예외가 올바르게 사용되는지 확인해야합니다. 이러한 기능의 일부 하위 집합은 현재 가지고있는 것보다 낫습니다.

+1

// 소프트웨어 권장 사항에 대한 요청이 아닙니까? –

답변

36
  • Findbugs 기존 버그를 찾을 수 있습니다. 아주 좋아!
  • 버그로 이어질 수 찾는 패턴
  • PMD (예를 들어, 사용되지 않는 변수)
  • Checkstyle
  • Error Prone 후크 바로 응용 프로그램의 컴파일 단계로 (예 : 공백, 자바 독) 표준과 규칙을 코딩 집행

이 모든 도구에는 겹치는 규칙이 있습니다. 비슷한 도구가 많이 있지만 가장 많이 사용되고 지원됩니다.

+0

Findbugs와 PMD가 다른 일을한다고 말씀해 주시겠습니까? 마지막으로 내가 이것을 들여다 보았을 때, 우리는 그들이 충분히 유사하다고 결론을 내렸고 우리는 오직 하나만 필요로했습니다 (그리고 PMD를 선택했습니다). 우리는 Checkstyle도 실행했으며, 그렇다고해서 PMD와 Checkstyle조차도 겹치는 것으로 나타났습니다. –

+0

@TomAnderson - 나는 그들이 분명히 다른 일을한다고 말하고 싶습니다. 두 가지 모두에 가치가 있습니다 (분명히 중첩되어 있습니다). – jtahlborn

+0

예, 매우 다른 목표. Findbugs는 ACTUAL 버그를 찾으려고하는데 때로는 심층 분석을 수행합니다. PMD는 때때로 버그를 유발하는 것으로 알려진 패턴을 찾습니다. 개인적으로 필자는 FindBugs와 Checkstyle을 덜 겹치기 때문에 사용합니다. – mikeslattery

4

또한 다른 도구를 결합한 멋진 체크를 제공하는 Sonar을 확인하십시오.

규칙은 Checkstyle, FindBugs, PMD, Clirr, fb-contrib의 규칙입니다.


후 커밋 후크에 추가하는 방법을 정확하게 확실하지,하지만 http://docs.codehaus.org/display/SONAR/Analyzing+with+Maven은 (당신이 받는다는을 사용하는 경우 특히) 좋은 출발점이 될 수 있습니다. 이러한 기능 중 일부 부분 집합이 더 좋을 것이다하지만

어쩌면 당신이 당신의 전체 팀을 위해 더 나은 툴을 찾기 위해 시도 할 수 있음을 보이기 때문에 http://docs.codehaus.org/display/SONAR/Continuous+Integration에 나와있는 방법 중 하나를 사용하는 것이 좋습니다 ("우리는 지금 무엇을 가지고 - 아무것도 아냐! "

+0

+1 질문이 제기 된 지 4 년 후, SonarQube는보다 적극적이고 현대적이며 완벽 해 보입니다. 위에서 언급 한 도구를 결합하는 데 사용되었지만 이제는 중복을 피하기 위해 기본적으로 구현합니다. https://blog.sonarsource.com/already-158-checkstyle-and-pmd-rules-deprecated-by-sonarqube-java-rules/ – user2518618

1

이것은 내가 직면 한 것 : 자바 코드의 품질을 검사하는 데 CLI 친화적 인 도구. 대화식 양식이있다. 단일 쿼리를 실행할 수있다. 경고) 또는 모든 쿼리를 함께 사용하십시오.

도구는 초기 단계이지만 거의 매일 작업하고 있습니다. 전자는 :

https://github.com/ftomassetti/effectivejava

저를 당신이 그것에 대해 생각하고 질문을 자유롭게 할 것을 알려 주시기 바랍니다.

+0

이 프로젝트의 최종 커밋은 2 년 전이었습니다. 이것이 더 이상 개발되고 있는지 확실하지 않습니다. –