JavaRush /Курсы /JSP & Servlets /Maven properties

Maven properties

JSP & Servlets
1 уровень , 6 лекция
Открыта

7.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>

7.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} задает путь к локальному репозиторию.
Комментарии (12)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Arthur Kozlov Уровень 115
16 октября 2025
Пока очень много информации без практики... 😞
Андрей Уровень 106
29 марта 2025
ctrl+alt+v вынести переменную в properties
nick nick Уровень 20
27 января 2024
абсолютно непонятно что за секция build. может в следущих лекциях будет
Anonymous #3268884 Уровень 24
21 марта 2024
Эта секция нужна для того, чтобы добавлять плагины. Если нужно в сборку проекта добавить какие-то особые действия, какие-то дополнительные задачи, то нужно подобрать плагин, который будет делать эти задачи, и вписать этот плагин в секцию билд. Там же еще и настройки этого плагина можно прописать.
tremb Уровень 41
25 июля 2022
И где искать settings.xml?
Тимур Уровень 47
18 августа 2022
В IIdea нажать "ctrl+alt+s" в поле поиска ввести "maven". И в поле "User settings file" будет ссылка на этот файл. Обычно это "C:\Users\ИМЯ_ПОЛЬЗОВАТЕЛЯ\.m2\settings.xml"
tremb Уровень 41
30 августа 2022
Вот этот текст и поместить бы в лекцию.
Яков Стойков Уровень 18
14 мая 2023
Также ті можешь добавить settings.xml в саму папку проекта и настроить его под конкретній проект.
Айрат М Уровень 26
12 июня 2023
На линуксе искать в home. Но она скрыта, что бы увидеть нужно нажать Ctrl + H
Андрей Уровень 37 Expert
11 июля 2024
Там где установлен maven есть папка conf. В ней и лежит файл settings.xml. Также он может лежать в репозитории(см. выше). По идее то что лежит в репозитории перетирает/дополняет то что лежит в conf
Фарид Гулиев Уровень 41
14 июля 2022
Ок.
AndreyKornev1993 Уровень 2
22 июля 2024
Может кто знает как можно выделив версию библиотеки сразу закинуть ее в блок properties c помощью горячих клавиш в Idea?