2012-05-11 6 views
7

Могу ли я передать значения параметра scm для Jenkins?Передача значений тега scm через параметр jenkins

в моей pom.xml, у меня есть значения, установленные по умолчанию:

<scm> 
    <connection> scm:svn:https://172.10.10.30/svn/repPortal/branches/2012/Branch_A/ </ connection> 
    <developerConnection>scm:svn:https://172.10.10.30/svn/repPortal/branches/2012/Branch_A/</developerConnection> 
</ scm> 

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

Я бы передал новый путь в специальном параметре в Jenkins, который автоматически будет установлен в проекте scm pom.

Я провел несколько тестов, установив строковый параметр в параметризованном здании, но он не распознал заданные параметры и ошибку в построении.

Другой путь должен был пройти через «целей выпуска и варианты»:

-X -Dresume=false release:clean release:prepare release:perform \ 
    -DscmConnection="scm:svn:https://172.10.10.30/svn/repPortal/branches/2012/Branch_B"-DscmDeveloperConnection = "scm: svn: https ://172.10.10.30/svn/repPortal/branches/2012/Branch_B "scm: validate 

сохраняется ошибка ...

Caused by: org.apache.maven.shared.release.ReleaseFailureException: 
    Missing required setting: scm connection or developerConnection must be specified. 

Есть ли способ сделать это так, что я могу сказать Дженкинсом?

ответ

1

Я заметил, что свойства, определенные для соединений SCM, неверны. Свойством для установки соединения SCM в командной строке является -Dproject.scm.connection, а соединение разработчика - -Dproject.scm.developerConnection.

+0

Итак, я пробовал следующую инструкцию для своих дженкинсов, но она не модифицировала тег scm, определенный в моем pom.xml: -X -Dresume = false release: clean release: подготовить release: выполнить -Dproject.scm.connection = scm: svn: https: //172.10.10.30/svn/repPortal/branches/2012/Branch_B -Dproject.scm.developerConnection = scm: svn: https: //172.10.10.30/svn/repPortal/branches/2012/Branch_B Есть ли другой способ переписать настройки? – ricardo

+0

Добавьте '-DdryRun = true' без' release: выполнить 'в той же команде. Взгляните на промежуточные POM, созданные maven. Кто-нибудь из них выглядит правильно? Кроме того, подумайте над запуском этой команды dryRun в командной строке без Jenkins, вы получите тот же результат? И последнее, но не менее важное: вчера была выпущена версия maven-release-plugin' версии 2.3, и они сделали некоторые исправления, связанные с использованием SCM, что тоже может помочь. – user944849

1

В соответствии с MRELEASE-707 свойства connection и developerConnection являются только для чтения и не могут быть установлены напрямую. Вы должны определить свою собственность для URL-адреса и использовать его в качестве заполнителя (см.: How to override maven property in command line?).

Смежные вопросы