Ответ 1
Похоже, я сделал mvn -DdryRun=true release:perform
, и это удалило файл release.properties со стадии подготовки.
Поэтому я добавляю команду -DconnectionUrl в команду для предоставления URL-адреса тега
Я использую maven 2.2.1, и я успешно побежал:
mvn -B release:clean release:prepare
Но получаю сообщение об ошибке " Нет URL-адреса SCM для выполнения выпуска из" при запуске:
mvn release:perform
У моего pom.xml правильные метки scm:
<scm>
<url>file:///C:/tmp/svnrepo/myproj/trunk</url>
<connection>scm:svn:file:///C:/tmp/svnrepo/myproj/trunk</connection>
<developerConnection>scm:svn:file:///C:/tmp/svnrepo/myproj/trunk</developerConnection>
</scm>
Похоже, я сделал mvn -DdryRun=true release:perform
, и это удалило файл release.properties со стадии подготовки.
Поэтому я добавляю команду -DconnectionUrl в команду для предоставления URL-адреса тега
Можно перезапустить maven release:perform
, создав вручную отредактированный файл release.properties
в корневой папке. Этот файл должен определить эти два свойства: scm.url
и scm.tag
. Вот возможный пример:
scm.url=scm:git:https://github.com/owner/repo.git
scm.tag=v1.0.4
В этом файле можно выполнить команду release:perform
.
Вдохновленный этим ответом .
Он должен работать. У меня была аналогичная проблема, но в моем случае выполнение завершилось неудачно из-за сетевой ошибки, и мне пришлось перезапустить ее с чем-то вроде:
mvn release:perform -rf :{ARTIFACT ON WHICH IT FAILED} -DconnectionUrl=scm:svn:{URL TO TAG}
Я получил то же исключение в нашей автоматизации CI, и это произошло из-за того, что каталог target/checkout
уже имеет сборку релиза. Для одного из проектов мы должны были представить импровизированную сборку релиза maven между реальными шагами maven release:prepare
и release:perform
. Как часть импровизации, тег выпуска извлекается в target/checkout
, и я заметил, что если этот каталог оставить невостребованным, это приведет к сбою release:perform
с ошибкой No SCM URL was provided to perform the release from
. Я не знаю, имеет ли это значение, но мы также используем опцию -DlocalCheckout=true
.