Есть ли простой CLI Java linter?

Я пытаюсь найти Java linter, способный работать в CLI, который отделен от Eclipse, который я могу назвать фиксатором для git или из нашей автоматической сборки script. Существует ли такая вещь?

В идеале необходимо проверить неиспользуемые импорты и переменные, следовать этим правилам стиля, исключения используются правильно и т.д. Хотя некоторые подмножества этих функций будут лучше, чем то, что у нас есть сейчас - ничего!

Ответ 1

  • Findbugs для поиска существующих ошибок. ОЧЕНЬ ХОРОШО!
  • PMD для поиска шаблонов, которые могут привести к ошибкам (например, неиспользуемые переменные)
  • Checkstyle для обеспечения соблюдения стандартов и соглашений кодирования (например, whitespace, Javadoc)
  • Error Prone подключается прямо к шагу компиляции приложения.

Все эти инструменты имеют некоторые перекрывающиеся правила. Есть много других подобных инструментов, но они наиболее популярны и поддерживаются.

Ответ 2

Кроме того, проверьте Sonar, который сочетает в себе многие другие инструменты и предоставляет хороший вид для него.

правила из Checkstyle, FindBugs, PMD, Clirr, fb-contrib.


Не уверен, как добавить его в post-commit hook, но http://docs.codehaus.org/display/SONAR/Analyzing+with+Maven может быть хорошей отправной точкой (особенно если вы используя maven).

Возможно, даже подумайте об использовании одного из подходов, перечисленных в http://docs.codehaus.org/display/SONAR/Continuous+Integration, поскольку кажется, что вы, возможно, пытаетесь найти лучший инструмент для своего целая команда ( "Хотя некоторые подмножества этих функций были бы лучше того, что у нас сейчас - ничего!"

Ответ 3

Это ТОЧНО, над чем я работаю: инструмент CLI, удобный для проверки качества Java-кода. Он также имеет интерактивный способ. Вы можете запускать одиночные запросы (для проверки одиночных предупреждений) или всех запросов вместе.

Инструменты находятся на ранней стадии, но я работаю над этим почти каждый день. Он доступен здесь:

https://github.com/ftomassetti/effectivejava

Пожалуйста, дайте мне знать, что вы думаете об этом и не стесняйтесь задавать вопросы.