Я пытаюсь сделать выпуск mvn, но он не работает из-за проблем с git. Я делал это несколько раз раньше без этой проблемы, и я действительно не понимаю, почему/как это происходит.
Сначала я сделал это, выполнив mvn release:prepare, но обошёл это, добавив последнюю строку, показанную ниже, в мой root-pom:
<artifactId>maven-release-plugin</artifactId>
<configuration>
<preparationGoals>clean install</preparationGoals>
<pushChanges>false</pushChanges>
Но теперь, когда я пытаюсь выполнить mvn release:perform, я снова получаю сообщение об ошибке:
[INFO] Executing: cmd.exe /X /C "git clone file://C\Users\torbjornk\nfr\MyProject/ C:\Users\torbjornk\nfr\MyProject\target\checkout"
[INFO] Working directory: C:\Users\torbjornk\nfr\MyProject\target
[ERROR] The git-clone command failed.
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Unable to checkout from SCM
Provider message:
The git-clone command failed.
Command output:
fatal: 'C:/Program Files (x86)/Git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Я не понимаю, откуда взялась идея, что моя папка установки git должна быть репозиторием git! Команда git clone, зарегистрированная непосредственно перед возникновением ошибки, также не содержит ссылки на эту папку.
Ответ 1 · рейтинг 10 · HaveAGuess
Просто чтобы добавить к превосходному оригинальному ответу Тобба..
Я заметил, что это было исправлено, но возникли проблемы с получением новая версия для работы. Вы должны добавить ее как зависимость плагина (не проекта), например.
<!-- Appengine deploy at end of mvn release:perform -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.2.2</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.8.1</version>
</dependency>
</dependencies>
</plugin>
Ответ 2 · рейтинг 3 · Tobb
Оказалось, что это была ошибка, которая встречалась ранее. Это связано с ошибкой в maven-scm-provider-git, которая приводит к тому, что ссылка на локальный репозиторий для проверки теряет ':' в "C:...". (Ошибка описана здесь: http://jira.codehaus.org/browse/SCM-662)
Мы исправили это, скопировав исправленную версию jar в локальный репозиторий maven, но недавно я очистил свой локальный репозиторий, чтобы проверить, правильно ли ведет себя наш репозиторий Nexus, и, таким образом, получил неисправленную версию jar в моем локальном репозитории. (Дох!)
Итак, я добавил исправленную версию jar в мой локальный репозиторий maven, команда git clone-command снова содержала ":", и все заработало :)
Изменить: эта ошибка исправлена в версии 2.4 плагина выпуска maven.
Ответ 3 · Ilion
Может ли быть проблема с
file://C\Users\torbjornk\nfr\MyProject/
? Разве вы не можете просто клонировать, используя обычный путь?
C:\Users\torbjornk\nfr\MyProject/
Если нет, я думаю, что это должно быть:
file:///C:/Users/torbjornk/nfr/MyProject/
Если это не сработает, попробуйте один из них:
file://localhost/c|/Users/torbjornk/nfr/MyProject/
file:///c|/Users/torbjornk/nfr/MyProject/
file://localhost/c:/Users/torbjornk/nfr/MyProject/