Skip to content

Latest commit

 

History

History
198 lines (148 loc) · 9.89 KB

File metadata and controls

198 lines (148 loc) · 9.89 KB

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

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

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

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

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

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

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

Для того чтобы собрать проект, и проверить, что все работает корректно, можно запустить из модального окна 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 23

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

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

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 spotless:apply

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

mvn compile

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

mvn test

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

mvn clean compile -am spotless:check modernizer:modernizer spotbugs:check pmd:check pmd:cpd-check

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

mvn dependency:tree

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

mvn help:describe -Dplugin=compiler

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

Стандартная справка Spring

Getting Started

Reference Documentation

For further reference, please consider the following sections:

Guides

The following guides illustrate how to use some features concretely:

Testcontainers support

This project uses Testcontainers at development time.

Testcontainers has been configured to use the following Docker images:

Please review the tags of the used images and set them to the same as you're running in production.

Maven Parent overrides

Due to Maven's design, elements are inherited from the parent POM to the project POM. While most of the inheritance is fine, it also inherits unwanted elements like <license> and <developers> from the parent. To prevent this, the project POM contains empty overrides for these elements. If you manually switch to a different parent and actually want the inheritance, you need to remove those overrides.