Есть ли простой 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
Пожалуйста, дайте мне знать, что вы думаете об этом и не стесняйтесь задавать вопросы.