【问题标题】:Maven Release-plugin "tag already exists" for nonexistant tagMaven Release-plugin“标签已存在”用于不存在的标签
【发布时间】:2013-12-11 09:19:09
【问题描述】:

我的设置:git-repository 在Atlassian Stash-server 和Atlassian Bamboo 上。 我正在使用Maven 3.1.1release-plugin 2.3.2Bamboo 中的计划如下所示:

  1. git-repository 签出
  2. 执行clean install
  3. 使用ignoreSnapshots=trueresume=false 执行release:preparerelease:perform

直到最后一步一切正常,但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-repository 通过svn2gitsvn-repository 克隆。我已尝试多次重新导入存储库并在stash-server 上删除并重新克隆它。然而标签6.2.2 似乎存在于Maven 的深处。这是怎么回事?

更新:我刚刚尝试从存储库中删除所有标签。结果相同。将版本从 6.2.2 更改为 6.2.3 显示出积极的结果。

另一个更新:它似乎与存储库的名称有关。创建一个具有相同名称但在末尾添加 -2 的新存储库会有所帮助。

【问题讨论】:

    标签: git maven bamboo bitbucket-server svn2git


    【解决方案1】:

    release:prepare 之前的mvn release:clean 对我有用

    【讨论】:

      【解决方案2】:

      在之前的发布失败后,我在 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 工作区留下了一个肮脏的存储库状态,其中标签仍然存在。

      【讨论】:

        【解决方案3】:

        在我最后一次发现“缓存问题!”之后不久。我找到了解决方案。我按照此站点上的说明删除了所有存储库缓存数据:https://confluence.atlassian.com/display/BAMKB/Git+cache+removal+in+Bamboo

        【讨论】:

        • 如果构建工具是Jenkins,你知道怎么做吗?
        【解决方案4】:

        尝试源代码管理中的“构建前清理”和“构建后清理”选项 -> 其他行为。

        【讨论】:

          【解决方案5】:

          对我有用的是运行 mvn clean

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-02-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-11-07
            相关资源
            最近更新 更多