https://github.com/candygoose/hangman_game
https://github.com/candygoose/hangman_game
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/candygoose/hangman_game
- Owner: CandyGoose
- Created: 2024-12-25T22:44:25.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-25T23:06:10.000Z (about 1 year ago)
- Last Synced: 2025-04-08T13:25:29.836Z (9 months ago)
- Language: Java
- Size: 150 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Шаблон Java-проекта для домашних заданий
Шаблон для домашних заданий [Академии Бэкенда 2024][course-url].
Цель данного репозитория – познакомить вас с процессом разработки приложений на
Java с использованием наиболее распространенных практик, инструментов и
библиотек.
## Структура проекта
Это типовой Java-проект, который собирается с помощью инструмента автоматической
сборки проектов [Apache Maven](https://maven.apache.org/).
Проект состоит из следующих директорий и файлов:
- [pom.xml](./pom.xml) – дескриптор сборки, используемый maven, или Project
Object Model. В нем описаны зависимости проекта и шаги по его сборке
- [src/](./src) – директория, которая содержит исходный код приложения и его
тесты:
- [src/main/](./src/main) – здесь находится код вашего приложения
- [src/test/](./src/test) – здесь находятся тесты вашего приложения
- [mvnw](./mvnw) и [mvnw.cmd](./mvnw.cmd) – скрипты maven wrapper для Unix и
Windows, которые позволяют запускать команды maven без локальной установки
- [checkstyle.xml](checkstyle.xml),
[checkstyle-suppression.xml](checkstyle-suppression.xml), [pmd.xml](pmd.xml) и
[spotbugs-excludes.xml](spotbugs-excludes.xml) – в проекте используются
[линтеры](https://en.wikipedia.org/wiki/Lint_%28software%29) для контроля
качества кода. Указанные файлы содержат правила для используемых линтеров
- [.mvn/](./.mvn) – служебная директория maven, содержащая конфигурационные
параметры сборщика
- [lombok.config](lombok.config) – конфигурационный файл
[Lombok](https://projectlombok.org/), библиотеки помогающей избежать рутинного
написания шаблонного кода
- [.editorconfig](.editorconfig) – файл с описанием настроек форматирования кода
- [.github/workflows/build.yml](.github/workflows/build.yml) – файл с описанием
шагов сборки проекта в среде Github
- [.gitattributes](.gitattributes), [.gitignore](.gitignore) – служебные файлы
для git, с описанием того, как обрабатывать различные файлы, и какие из них
игнорировать
## Начало работы
Подробнее о том, как приступить к разработке, описано в разделах
[курса][course-url] `1.8 Настройка IDE`, `1.9 Работа с Git` и
`1.10 Настройка SSH`.
Для того чтобы собрать проект, и проверить, что все работает корректно, можно
запустить из модального окна IDEA
[Run Anything](https://www.jetbrains.com/help/idea/running-anything.html)
команду:
```shell
mvn clean verify
```
Альтернативно можно в терминале из корня проекта выполнить следующие команды.
Для Unix (Linux, macOS, Cygwin, WSL):
```shell
./mvnw clean verify
```
Для Windows:
```shell
mvnw.cmd clean verify
```
Для окончания сборки потребуется подождать какое-то время, пока maven скачает
все необходимые зависимости, скомпилирует проект и прогонит базовый набор
тестов.
Если вы в процессе сборки получили ошибку:
```shell
Rule 0: org.apache.maven.enforcer.rules.version.RequireJavaVersion failed with message:
JDK version must be at least 22
```
Значит, версия вашего JDK ниже 22.
Если же получили ошибку:
```shell
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.
Запуск только компиляции основных классов:
```shell
mvn compile
```
Запуск тестов:
```shell
mvn test
```
Запуск линтеров:
```shell
mvn checkstyle:check modernizer:modernizer spotbugs:check pmd:check pmd:cpd-check
```
Вывод дерева зависимостей проекта (полезно при отладке транзитивных
зависимостей):
```shell
mvn dependency:tree
```
Вывод вспомогательной информации о любом плагине (вместо `compiler` можно
подставить интересующий вас плагин):
```shell
mvn help:describe -Dplugin=compiler
```
## Дополнительные материалы
- Документация по maven: https://maven.apache.org/guides/index.html
- Поиск зависимостей и их версий: https://central.sonatype.com/search
- Документация по процессу автоматизированной сборки в среде github:
https://docs.github.com/en/actions
- Документация по git: https://git-scm.com/doc
- Javadoc для Java 22:
https://docs.oracle.com/en/java/javase/22/docs/api/index.html
[course-url]: https://edu.tinkoff.ru/all-activities/courses/870efa9d-7067-4713-97ae-7db256b73eab