1. Обзор
В этом кратком руководстве мы рассмотрим, как мы можем передавать аргументы в Maven с помощью командной строки.
2. Свойства Мавена
Свойства Maven являются заполнителями значений. Во- первых, нам нужно определить их в теге свойств в нашем файле
pom.xml
:
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<start-class>com.example.Application</start-class>
<commons.version>2.5</commons.version>
</properties>
Затем мы можем использовать их внутри других тегов. Например, в этом случае мы будем использовать значение « commons.version
» в нашей зависимости commons-io
:
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>{commons.version}</version>
</dependency>
На самом деле мы можем использовать эти свойства в любом месте pom.xml
, например, в разделах build
, package
или plugin
.
3. Определите заполнители для свойств
Иногда мы не знаем значение свойства во время разработки. В этом случае мы можем оставить заполнитель вместо значения, используя синтаксис ${some_property}
, и Maven переопределит значение заполнителя во время выполнения . Давайте установим заполнитель для COMMON_VERSION_CMD
:
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<commons.version>2.5</commons.version>
<version>${COMMON_VERSION_CMD}</version>
</properties>
4. Передача аргумента Maven
Теперь давайте запустим Maven из нашего терминала, как обычно, например, с помощью команды package
. Но в этом случае давайте также добавим обозначение -D
, за которым следует имя свойства:
mvn package -DCOMMON_VERSION_CMD=2.5
Maven будет использовать значение (2.5), переданное в качестве аргумента, для замены свойства COMMON_VERSION_CMD
, установленного в нашем pom.xml
. Это не ограничивается командой package
— мы можем передавать аргументы вместе с любой командой Maven , такой как install
, test
или build
.
5. Вывод
В этой статье мы рассмотрели, как передать параметры в Maven из командной строки. Используя этот подход, вместо изменения pom.xml
или любой статической конфигурации мы можем динамически предоставлять свойства.