pom.xml

pom.xml — главный файл Maven-проекта: описывает, из чего состоит проект и что ему нужно для сборки. Maven читает его и сам скачивает зависимости, компилирует и собирает код по описанным правилам.

<project>
    <groupId>ru.javaguide</groupId>
    <artifactId>my-app</artifactId>
    <version>1.0.0</version>
    <packaging>jar</packaging>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
    </properties>

    <dependencies>
        <!-- сюда добавляются библиотеки -->
    </dependencies>
</project>

groupId + artifactId + version — уникальные координаты проекта (так же как у любой библиотеки в репозитории Maven).

Копнуть глубже

Жизненный цикл сборки Maven — фиксированная последовательность шагов (фаз), каждая зависит от предыдущей:

validate → compile → test → package → install → deploy
mvn compile     # только скомпилировать
mvn test        # скомпилировать + прогнать тесты
mvn package     # + собрать .jar/.war
mvn install     # + положить в локальный репозиторий (~/.m2)

Запуск любой фазы автоматически выполняет все предыдущие фазы — mvn package сам сначала скомпилирует и прогонит тесты.

Плагины расширяют, что Maven умеет делать на каждом шаге — например, maven-compiler-plugin управляет компиляцией, maven-surefire-plugin — запуском тестов. Подключаются в секции <build><plugins>.

🎤 Закрыл тему, если можешь объяснить:
• что описывает pom.xml и что такое координаты проекта;
• порядок фаз жизненного цикла Maven (если дошёл до 2-го слоя).