Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Выпуск Maven завершается неудачно из-за сбоя git

Автор вопроса: TobbОтветов: 3

Я пытаюсь сделать выпуск 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, зарегистрированная непосредственно перед возникновением ошибки, также не содержит ссылки на эту папку.

  • Как выглядит ваша часть scm в pom? khmarbaise 30.11.2012
  • Как вы решили эту проблему? Мне тоже грозит больше 10 дней. Shankar 24.06.2020

gitmavenmaven-release-plugin

Ответы

Ответ 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/

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы