1. Змінні в Maven – properties
Параметри, що часто зустрічаються, Maven дозволяє винести до змінних. Це дуже корисно, коли потрібно, щоб у різних частинах pom-файлу параметри збігалися. Наприклад, у змінну можна винести версію Java, версії бібліотеки, шляхи до певних ресурсів.
Для цього є спеціальна секція в pom.xml – <properties>
, в якій оголошуються змінні. Загальний вид змінної такий:
<ім'я-змінної>значення</ім'я-змінної>
Приклад:
<properties>
<junit.version>5.2</junit.version>
<project.artifactId>new-app</project.artifactId>
<maven.compiler.source>1.13</maven.compiler.source>
<maven.compiler.target>1.15</maven.compiler.target>
</properties>
Для звернення до змінних використовується інший синтаксис:
${ім'я-змінної}
Там, де написано такий код, Maven підставить значення змінної.
Приклад:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
</build>
2. Попередньо визначені змінні в Maven
При описі проєкту в pom-файлі можна використовувати певні змінні. Їх можна умовно поділити на кілька груп:
- Вбудовані характеристики проєкту;
- Властивості проєкту;
- Налаштування.
Вбудованих властивостей проєкту лише дві:
Властивість | Опис |
---|---|
${basedir} | кореневий каталог проєкту, де розташовується pom.xml |
${version} | версія артефакту; можна використовувати ${project.version} або ${pom.version} |
На властивості проєкту можна посилатися за допомогою префіксів «project»
або «pom»
. Їх у нас чотири:
Властивість | Опис |
---|---|
${project.build.directory} | «target» директорія проєкту |
${project.build.outputDirectory} | «target» директорія компілятора. За замовчуванням – «target/classes» |
${project.name} | найменування проєкту |
${project.version} | версія проєкту |
Доступ до властивостей settings.xml
можна отримати за допомогою префікса settings
. Імена можуть бути будь-якими – беруться із settings.xml
. Приклад:
${settings.localRepository} встановлює шлях до локального репозиторію.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ