Усечение URL-адреса SCM (git) для push-метки релиза maven
По какой-то причине, когда я запускаю релиз maven, он дает мне недопустимый URL только для части тегов push. Для pom.xml commit/push он работает нормально и переходит по соответствующему URL. Увидеть ниже:
[INFO] Working directory: /opt/jenkins-home/jobs/Section 4362/workspace/section4362-parent
[INFO] Executing: /bin/sh -c cd "/opt/jenkins-home/jobs/Section 4362/workspace/section4362-parent" && git commit --verbose -F /tmp/maven-scm-217365030.commit '/opt/jenkins-home/jobs/Section 4362/workspace/section4362-services/pom.xml' '/opt/jenkins-home/jobs/Section 4362/workspace/section4362-webapp/pom.xml' '/opt/jenkins-home/jobs/Section 4362/workspace/section4362-static/pom.xml' pom.xml
[INFO] Working directory: /opt/jenkins-home/jobs/Section 4362/workspace/section4362-parent
[INFO] Executing: /bin/sh -c cd "/opt/jenkins-home/jobs/Section 4362/workspace/section4362-parent" && git symbolic-ref HEAD
[INFO] Working directory: /opt/jenkins-home/jobs/Section 4362/workspace/section4362-parent
[INFO] Executing: /bin/sh -c cd "/opt/jenkins-home/jobs/Section 4362/workspace/section4362-parent" && git push ssh://git@github.com/{org}/Section4362.git maven-release-test:maven-release-test
[INFO] Working directory: /opt/jenkins-home/jobs/Section 4362/workspace/section4362-parent
[INFO] Tagging release with the label section4362-parent-0.3...
[INFO] Executing: /bin/sh -c cd "/opt/jenkins-home/jobs/Section 4362/workspace" && git tag -F /tmp/maven-scm-882610155.commit section4362-parent-0.3
[INFO] Working directory: /opt/jenkins-home/jobs/Section 4362/workspace
[INFO] Executing: /bin/sh -c cd "/opt/jenkins-home/jobs/Section 4362/workspace" && git push ssh://git@github.com/{org} section4362-parent-0.3
[INFO] Working directory: /opt/jenkins-home/jobs/Section 4362/workspace
Вы можете видеть, что для push после коммита ssh://git@github.com/{org}/Section4362.git
({org} очищен мной), тогда как для push после тега, он идет в ssh://git@github.com/{org}
- URL должен включать /Section4362.git
в конце. Все мои файлы pom указывают правильное: scm:git:ssh://git@github.com/{org}/Section4362.git
Как изменится URL-адрес для push-тега и откуда он его получит? Очевидно, что на этом этапе сборка завершается сбоем, говоря, что невозможно подключиться к репо.
2 ответа
Я была такая же проблема. Я использую JDK 1.7, Maven 3.3.9 и Maven-релиз плагин 2.5.3
Я посмотрел на jira, выпущенную к этой проблеме, и я не нашел, что это было исправлено:-(
https://issues.apache.org/jira/browse/MRELEASE-939
https://issues.apache.org/jira/browse/MRELEASE-927
Я нашел трюк, чтобы maven не указывал URL-адрес, используемый для добавления тега.
Я точно указываю и извлекаю и получаю URL SCM в pom.xml, используя один и тот же URL. Важно сначала определить push url, а затем извлечь, а не наоборот. Вот пример.
<scm>
<connection>scm:git:https://gitlab.com/gitlab-org/java-project-template-single-scm.git</connection>
<developerConnection>scm:git:[push=]https://gitlab.com/gitlab-org/java-project-template-single-scm.git[fetch=]https://gitlab.com/gitlab-org/java-project-template-single-scm.git</developerConnection>
<url>https://gitlab.com/gitlab-org/java-project-template-single-scm.git</url>
<tag>HEAD</tag>
</scm>
В maven-release-plugin есть открытая проблема, которую нужно исправить, чтобы все заработало. См. http://jira.codehaus.org/browse/MRELEASE-767 для получения дополнительной информации. К сожалению, до тех пор, пока ошибка в переводе URL-адреса git не будет устранена, мало что можно сделать, кроме как не вносить изменения в git.