Тег Maven Release-plugin уже существует для несуществующего тега

Моя установка: git-репозиторий на Atlassian Stash-сервере и Atlassian Bamboo. Я использую Maven 3.1.1 с release-plugin 2.3.2. План в Bamboo выглядит так:

  1. Извлечь из git-репозитория
  2. выполнить clean install
  3. выполнить release:prepare и release:perform с ignoreSnapshots=true и resume=false

Все до последнего шага работает нормально, но Maven заявляет, что не может пометить релиз, потому что тег уже существует. Вот журнал:

build   26-Nov-2013 10:36:37    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.3.2:prepare (default-cli) on project [PROJECT-NAME]: Unable to tag SCM
build   26-Nov-2013 10:36:37    [ERROR] Provider message:
build   26-Nov-2013 10:36:37    [ERROR] The git-tag command failed.
build   26-Nov-2013 10:36:37    [ERROR] Command output:
build   26-Nov-2013 10:36:37    [ERROR] fatal: tag '[PROJECT-NAME]-6.2.2' already exists

Ну, очевидно, тег уже существует, ничего страшного. Однако вот как выглядит git tag для моего репозитория:

bash:~/git/repositories/PROJECT-NAME$ git tag
[PROJECT-NAME]-5.2.5
[PROJECT-NAME]-5.3.0
[PROJECT-NAME]-5.3.1
[PROJECT-NAME]-5.4.0
[PROJECT-NAME]-5.5.0
[PROJECT-NAME]-5.5.1
[PROJECT-NAME]-5.5.2
[PROJECT-NAME]-5.5.3
[PROJECT-NAME]-5.5.4
[PROJECT-NAME]-5.6.0
[PROJECT-NAME]-5.6.1
[PROJECT-NAME]-5.6.2
[PROJECT-NAME]-5.6.3
[PROJECT-NAME]-5.6.4
[PROJECT-NAME]-5.6.5
[PROJECT-NAME]-5.6.6
[PROJECT-NAME]-6.0.0
[PROJECT-NAME]-6.0.1
[PROJECT-NAME]-6.0.2
[PROJECT-NAME]-6.1.0
[PROJECT-NAME]-6.1.1
[PROJECT-NAME]-6.1.2
[PROJECT-NAME]-6.2.0
[PROJECT-NAME]-6.2.1

git-репозиторий клонируется через svn2git из svn-репозитория. Я несколько раз пытался повторно импортировать репозиторий, удалять и повторно клонировать его на stash-сервере. Тем не менее, тег 6.2.2, кажется, существует где-то в глубине для Maven. Что тут происходит?

Обновление: я только что попытался удалить ВСЕ теги из репозитория. Тот же результат. Смена версии с 6.2.2 на 6.2.3 показала положительные результаты.

Еще одно обновление: похоже, это как-то связано с названием репозитория. Помогло создание нового репозитория с тем же именем, но с добавлением -2 в конце.


person Vince    schedule 26.11.2013    source источник


Ответы (5)


mvn release:clean до release:prepare мне помогло

person Peter Szalay    schedule 31.07.2019

Вскоре после моего последнего открытия, которое кричало "ПРОБЛЕМА КЭША!" Я нашел решение. Я удалил все данные кеша репозитория, следуя инструкциям на этом сайте: https://confluence.atlassian.com/display/BAMKB/Git+cache+removal+in+Bamboo

person Vince    schedule 28.11.2013
comment
Знаете ли вы, как это сделать, если инструментом сборки является Jenkins? - person octavian; 24.03.2017

Я снова и снова сталкивался с этой ошибкой в ​​сборке выпуска Jenkins после того, как предыдущий выпуск не удался. Я восстановил состояние репозитория перед выпуском и проверил, что тег больше не существует, используя git tag. Чтобы быть абсолютно уверенным, я также удалил тег локально и удаленно, используя:

git tag --delete mytag
git push --delete origin mytag

Обе команды сообщили, что тег не существует. Несмотря на это, сборка выпуска продолжала давать сбой с

[ERROR] The git-tag command failed.
[ERROR] Command output:
[ERROR] fatal: tag 'mytag' already exists`.

Я, наконец, решил это, включив опцию

Build Environment -> Delete workspace before build starts

Следовательно, проблема заключается в том, что после неудачной сборки релиза рабочая область Jenkins остается с грязным состоянием репозитория, в котором тег все еще существует.

person davehofmann    schedule 19.11.2019

Попробуйте варианты «Очистить перед сборкой» и «Очистить после сборки» в разделе «Управление исходным кодом» -> «Дополнительные действия».

person Vivek Vermani    schedule 25.07.2018

Что сработало для меня, так это запуск mvn clean .

person thouliha    schedule 20.03.2015