Репозиторий с обучающими задачами по Java. Основная цель проекта: держать практику, справочные материалы и учебные датасеты в одной понятной структуре.
- Установленный JDK 17+.
- Доступ в интернет для скачивания зависимостей при первой сборке (используется Gradle Wrapper).
-
Перейдите в корень проекта.
-
Выполните сборку:
- Linux/macOS:
./gradlew clean build - Windows (PowerShell):
./gradlew.bat clean build
-
После сборки скомпилированные классы располагаются в каталоге
build/classes/java/main. -
Запускайте команды из корня проекта. После параметра
-cpуказывается каталог со скомпилированными классами, а затем — полное имя запускаемого класса без расширения.java.Полное имя класса определяется по пути к исходному файлу после каталога
src/main/java:src/main/java/org/study/bootcamp/mishustin/task14/lambda/spellcasting/v1/api/cli/Demo.javaВ пути замените разделители каталогов на точки и удалите расширение
.java:org.study.bootcamp.mishustin.task14.lambda.spellcasting.v1.api.cli.DemoLinux/macOS:
java -cp build/classes/java/main org.study.bootcamp.mishustin.task14.lambda.spellcasting.v1.api.cli.Demo
Windows (PowerShell):
java -cp "./build/classes/java/main" org.study.bootcamp.mishustin.task14.lambda.spellcasting.v1.api.cli.Demo
-
Для запуска другой задачи замените полное имя класса, сохранив путь к каталогу со скомпилированными классами:
Linux/macOS:
java -cp build/classes/java/main org.study.bootcamp.mishustin.task<номер>.<пакеты>.Demo
Windows (PowerShell):
java -cp "./build/classes/java/main" org.study.bootcamp.mishustin.task<номер>.<пакеты>.Demo
-
Если точкой входа является упрощенная версия в пакете
easy, запускайте классMain. Например:Linux/macOS:
java -cp build/classes/java/main org.study.bootcamp.mishustin.task1.group.users.by.age.v6.easy.Main
Windows (PowerShell):
java -cp "./build/classes/java/main" org.study.bootcamp.mishustin.task1.group.users.by.age.v6.easy.Main
Основной учебный код лежит в src/main/java/org/study/bootcamp/mishustin.
Пакеты задач имеют формат taskN/topic/words/vX/..., где:
taskN- номер учебной задачи;topic/words- человекочитаемое имя задачи в пакетном стиле;vX- версия решения или итерация упражнения;api/cli- консольная точка входа, обычноDemo;application- сервисы, стратегии, сценарии и прикладная логика;domain- модели и контракты предметной области;infrastructure- работа с внешними источниками, файлами, консолью;easy- упрощенная учебная версия с точкой входаMain.
В src/main/resources лежат вспомогательные данные для задач:
user_profiles.json- профили пользователей;products.json- каталог товаров;product_orders.json- заказы товаров;vacancies.json- вакансии для аналитики;students_test_data.json- тестовые данные студентов;environmental_impact_100.csv- экологические показатели компаний.
Эти файлы используются для упражнений по JSON/CSV-загрузке, фильтрации, агрегации, рекомендациям и отчетам.
Проект собирается Gradle-плагином java и использует:
- SLF4J и Logback для логирования;
- Lombok для генерации шаблонного кода;
- Apache Commons Lang3 для утилит;
- Gson для JSON;
- JUnit Jupiter и Mockito для тестирования.
Версии указаны в build.gradle и подтягиваются из Maven Central.
Структура src/test заведена, но тест-кейсы могут добавляться постепенно.
Команду тестов можно использовать как проверку компиляции и готовую точку для будущих unit-тестов:
- Linux/macOS:
./gradlew test - Windows PowerShell:
./gradlew.bat test
В src/main/java/org/study/bootcamp/mishustin/info/HELPME.md собрана
памятка по темам буткемпа, ссылкам на видео и советам по решению задач.
Используйте ее как чек-лист при выполнении практики и повторении тем.
...