Установить свойство плагина в командной строке в Maven 2 - PullRequest
24 голосов
/ 15 апреля 2009

В maven 2.x, как установить свойство плагина в командной строке вместо этого плагина в pom или в settings.xml?

Например, если я использовал mvn dependency:copy-dependencies ( видно здесь ), как я могу установить свойство useRepositoryLayout, не касаясь pom или моего settings.xml?

Спасибо!

Ответы [ 4 ]

19 голосов
/ 15 апреля 2009

Ответ был прямо передо мной в документах mojo docs о зависимостях от копирования (я даже ссылался на него). Документация для свойства включает выражение, к которому вы можете обратиться.

useRepositoryLayout: разместить каждый артефакт в том же макете каталога в качестве хранилища по умолчанию. пример: /outputDirectory/junit/junit/3.8.1/junit-3.8.1.jar

* Type: boolean
* Since: 2.0-alpha-2
* Required: No
* Expression: ${mdep.useRepositoryLayout}
* Default: false

Чтобы установить это свойство из командной строки, вам нужно запустить

mvn -Dmdep.useRepositoryLayout=true <goals go here>
14 голосов
/ 05 октября 2010

Определите свойства как произвольные свойства ... не стандартные реквизиты maven, такие как версия. В моем случае я определил новое свойство build.version:

<properties> build.version=unknown </properties>

Я использую свойство:

<warName>${build.version}</warName>

Я определяю свойство:

mvn -P prod -Dbuild.version=app_name-branch_name-build_number package
6 голосов
/ 15 апреля 2009

Обычно вы устанавливаете свойства maven, используя тот же синтаксис, что и системные свойства java. Вы пробовали следующую строку?

mvn -DuseRepositoryLayout=true dependency:copy-dependencies
0 голосов
/ 22 мая 2018

Другие ответы здесь были неясны для меня. Вот как я это понимаю:

Если код плагина использует системное свойство для своего параметра, то вы можете определить значение в командной строке.

Есть 3 различных способа сделать это в коде плагина:

@parameter expression="${aSystemProperty}" 
@parameter default-value="${anExpression}"
@parameter property="aSystemProperty"

Если в коде плагина для определенного свойства используется какой-либо из этих методов или их комбинация, вы можете указать значение параметра плагина в командной строке. Выше код был взят из Maven Docs здесь .

Если вы используете плагин с приведенным выше кодом, вы можете указать значение для вашего свойства, используя следующую команду:

mvn -DaSystemProperty=my-value <goal-here>
...