Шаблон Java-проекта для домашних заданий

Шаблон для домашних заданий Академии Бэкенда 2024.

Цель данного репозитория – познакомить вас с процессом разработки приложений на Java с использованием наиболее распространенных практик, инструментов и библиотек.

Структура проекта

Это типовой Java-проект, который собирается с помощью инструмента автоматической сборки проектов Apache Maven.

Проект состоит из следующих директорий и файлов:

  • pom.xml – дескриптор сборки, используемый maven, или Project Object Model. В нем описаны зависимости проекта и шаги по его сборке
  • src/ – директория, которая содержит исходный код приложения и его тесты:
    • src/main/ – здесь находится код вашего приложения
    • src/test/ – здесь находятся тесты вашего приложения
  • mvnw и mvnw.cmd – скрипты maven wrapper для Unix и Windows, которые позволяют запускать команды maven без локальной установки
  • checkstyle.xml, checkstyle-suppression.xml, pmd.xml и spotbugs-excludes.xml – в проекте используются линтеры для контроля качества кода. Указанные файлы содержат правила для используемых линтеров
  • .mvn/ – служебная директория maven, содержащая конфигурационные параметры сборщика
  • lombok.config – конфигурационный файл Lombok, библиотеки помогающей избежать рутинного написания шаблонного кода
  • .editorconfig – файл с описанием настроек форматирования кода
  • .github/workflows/build.yml – файл с описанием шагов сборки проекта в среде Github
  • .gitattributes, .gitignore – служебные файлы для git, с описанием того, как обрабатывать различные файлы, и какие из них игнорировать

Начало работы

Подробнее о том, как приступить к разработке, описано в разделах курса 1.8 Настройка IDE, 1.9 Работа с Git и 1.10 Настройка SSH.

Для того чтобы собрать проект, и проверить, что все работает корректно, можно запустить из модального окна IDEA Run Anything команду:

mvn clean verify

Альтернативно можно в терминале из корня проекта выполнить следующие команды.

Для Unix (Linux, macOS, Cygwin, WSL):

./mvnw clean verify

Для Windows:

mvnw.cmd clean verify

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

Если вы в процессе сборки получили ошибку:

Rule 0: org.apache.maven.enforcer.rules.version.RequireJavaVersion failed with message:
JDK version must be at least 22

Значит, версия вашего JDK ниже 22.

Если же получили ошибку:

Rule 1: org.apache.maven.enforcer.rules.version.RequireMavenVersion failed with message:
Maven version should, at least, be 3.8.8

Значит, у вас используется версия maven ниже 3.8.8. Такого не должно произойти, если вы запускаете сборку из IDEA или через mvnw-скрипты.

Далее будут перечислены другие полезные команды maven.

Запуск только компиляции основных классов:

mvn compile

Запуск тестов:

mvn test

Запуск линтеров:

mvn checkstyle:check modernizer:modernizer spotbugs:check pmd:check pmd:cpd-check

Вывод дерева зависимостей проекта (полезно при отладке транзитивных зависимостей):

mvn dependency:tree

Вывод вспомогательной информации о любом плагине (вместо compiler можно подставить интересующий вас плагин):

mvn help:describe -Dplugin=compiler

Дополнительные материалы