Как установить несколько свойств для Maven в Teamcity
Конфигурация передает свойство в Maven с помощью параметра "Дополнительные параметры командной строки Maven" для бегуна Maven. Это сделано с -Darguments=''
Итак maven-release-plugin
может использовать аргументы при каждом запуске, так как он разветвляет новые процессы.
Для одного свойства конфигурация:
-DsomeProp=%teamcity.agent.name% -Darguments='-DimportantProp=true'
Проблема заключается в передаче нескольких свойств, например, так:
-DsomeProp=%teamcity.agent.name% -Darguments='-DimportantProp=true -DsecondProp=file_on_disk.name'
Для конфигурации с несколькими свойствами журнал сборки показывает, что importantProp
решается как true -Dsecondprop=file_on_disk.name
что, как ожидается, недопустимое значение. Второе свойство secondProp
тогда не применяется, поскольку строка поглощается значением importantProp
,
Это делается для того, чтобы упростить выполнение тестов в TeamCity, а не менять пометки для каждого теста. Я не вижу каких-либо примеров для этой конфигурации на TeamCity.
2 ответа
Применение параметра конфигурации к конфигурации дважды сработало. Спасибо за предложение по параметру конфигурации Старший Помидор.
Создать параметр конфигурации в параметрах сборки или шаблон сборки %mavenArguments%
:
-DpropCheck=true -DpropPath=file_on_disk-1.path
Затем примените предоставленный параметр конфигурации в Additional Maven command line parameters
на этапе сборки Maven (работает непосредственно на этапе сборки или с помощью шаблона сборки) следующим образом:
%mavenArguments%
-Darguments='%mavenArguments%'
Я до сих пор не знаю, почему он не применяется правильно, написав прямо в Additional Maven command line parameters
но это наконец работает.
Ваши реквизиты отличаются -DsecondProp=true
, Таким образом, вы должны создать только одну опору для прохода. Давайте назовем mainProp
Кроме того, нам нужно добавить новый реквизит, который содержит пустой, если не отмечен или -DsecondProp=true
если проверено Создать параметр флажка additionalParam
с
- проверенное значение -
-DsecondProp=true
- непроверенное значение - `` (ничего)
Теперь нам нужно добавить этот параметр cb в наш mainProp. mainProp = -DsomeProp=%teamcity.agent.name% -Darguments='-DimportantProp=true %additionalParam%'
Когда вы запустите сборку, вы можете поставить галочку и пройти -DsomeProp=%teamcity.agent.name% -Darguments='-DimportantProp=true -DsecondProp=true