Есть ли простой CLI Java linter? [закрытый]

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

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

3 ответов


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

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


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

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


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

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


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

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

https://github.com/ftomassetti/effectivejava

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