JavaRush /Java курси /Модуль 3. Java Professional /Складання Maven-проєкту

Складання Maven-проєкту

Модуль 3. Java Professional
Рівень 1 , Лекція 7
Відкрита

1. Загальний вигляд pom-файлу

Структура проєкту описується у файлі pom.xml, який має знаходитись у кореневій папці проєкту. Вміст проектного файлу має такий вигляд:

<project>
        <!—Опис поточного проєкту -->
        <groupId>...</groupId>
        <artifactId>...</artifactId>
        <packaging>...</packaging>
        <version>...</ version>


        <properties>
            <!-- Секція властивостей -->
        </properties>

        <repositories>
            <!-- Секція репозиторіїв -->
        </repositories>


        <dependencies>
            <!-- Секція залежностей -->
        </dependencies>

        <build>
            <!-- Секція складання -->
        </build>
</project>

Не всі секції можуть бути присутніми в описі pom.xml. Наприклад, секції properties і repositories часто не використовуються. Параметри опису поточного проєкту є обов'язковими. Про останню секцію ми зараз і поговоримо.

2. Секція build

Секція build не є обов'язковою – Maven вміє збирати проєкт без неї. Але якщо ти хочеш налаштувати складання більш-менш складного проєкту, розуміння того, як там усе влаштовано, тобі стане в пригоді.

Давай розглянемо простий приклад:

  <build>
        <finalName>projectName</finalName>
        <sourceDirectory>${basedir}/src/java</sourceDirectory>
        <outputDirectory>${basedir}/targetDir</outputDirectory>
        <resources>
                <resource>
                <directory>${ basedir}/src/java/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                </includes>
                </resource>

        </resources>
        <plugins>
                . . .
        </plugins>
    </build>

Ця секція містить основну інформацію щодо складання проєкту: де розташовані Java-файли, файли ресурсів, які плагіни використовуються, куди складати зібраний проект.

Основних тегів тут чотири:

  • <finalName>
  • <sourceDirectory>
  • <outputDirectory>
  • <resources>

Коротко розберемо їх призначення:

Тег <finalName> встановлює ім'я результуючого файлу складання (jar, war, ear..), що створюється у фазі package. Якщо параметр не встановлено, використовується значення за замовчуванням – artifactId-version.

Тег <sourceDirectory> дозволяє перевизначити розташування файлів із вихідним кодом. За замовчуванням файли розміщуються в директорії ${basedir}/src/main/java, але можна вказати будь-яке інше місце.

Тег <outputDirectory> позначає директорію, куди компілятор зберігатиме результати компіляції – *.class файли. За замовчуванням визначено значення target/classes.

Тег <resources> та вкладені в нього теги <resource> визначають розташування файлів ресурсів. Файли ресурсів при збиранні просто копіюються до директорії outputDirectory. Значення директорії з ресурсами за замовчуванням дорівнює src/main/resources.

Секцію складання можна налаштовувати особливо гнучко. Докладніше ми розглянемо її трохи згодом.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ