-
Notifications
You must be signed in to change notification settings - Fork 53
Сборка и валидация кода
Проекты собираются с помощью maven. Это сейчас стандарт в java-индустрии (на замену ant). Скорее всего вы уже знакомы с системами сборки такими как make/cmake, maven не сильно отличается от остальных build-tools.
https://habrahabr.ru/post/77382/ - Основы maven
Описание процесса сборки хранится в pom.xml в корне проекта. В комментариях может прочитать про основные блоки, но в целом pom.xml не потребует значительной модификации. Скорее всего вы будете только добавлять библиотеки в проект.
$ mvn clean (очистить /target - удалит файлы от старых сборок)
$ mvn compile (собрать проект, по сути запуск javac)
$ mvn test (запустить тесты)
$ mvn install (пересобрать и запустить приложение, запустит mainClass указанный в pom.xml)
$ mvn checkstyle:checkstyle (запустить проверку форматирования)
Команды mvn можно объединять в пайп, например так
$ mvn clean install
Почистит старый билд, соберет новый и запустит приложение. Проверка форматирования подключена в стадию сборки, поэтому неотформатированый код не соберется.
Чтобы запустить произвольный mainClass, укажите
$ mvn exec:java -Dexec.mainClass="полное имя класса"
Код должен быть не только корректный, но и правильно оформленный. Мы придерживаемся Java Google Style Guide с небольшими упрощениями. Проверка автоматизирована с помощью checkstyle util.
Для упрощения работы настройте плагин checkstyle в IDEA и вы всегда будете видеть, что нужно поправить.
Preferences->Plugins Ищем среди плагинов checkstyle IDEA и устанавливаем
После установки идем в Preferences->Plugin->Checkstyle и кастомизируем правила форматирования. Правила форматирования для нашего курса лежат внутри проекта Google Rules
Добавляем файл с правилами и выбираем их галочкой.
Теперь плагин активирован и настроен, можно пользоваться им в ходе разработки прямо из IDEA
Во вкладке плагина есть описание ошибок, а сам редактор кода подчеркивает красным место ошибки. То же самое можно сделать из консоли, запустив
$ mvn checkstyle:checkstyle