我的设置:git
- Atlassian Stash
- 服务器上的存储库和Atlassian Bamboo
。
我正在Maven 3.1.1
使用release-plugin 2.3.2
。 Bamboo
中的计划如下所示:
git
- 知识库clean install
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
显示了积极的结果。
另一个更新:它似乎与存储库的名称有关。创建一个具有相同名称但在最后添加{{1}}的新存储库有帮助。
答案 0 :(得分:2)
在我最后一次发现之后不久就尖叫着" CACHE问题!"我找到了解决方案。我按照此站点上的说明删除了所有存储库缓存数据:https://confluence.atlassian.com/display/BAMKB/Git+cache+removal+in+Bamboo
答案 1 :(得分:2)
mvn release:clean
之前的 release:prepare
对我有用
答案 2 :(得分:0)
在源代码管理->其他行为中尝试“构建前清洁”和“构建后清洁”选项。
答案 3 :(得分:0)
在以前的发行失败之后,我在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工作区仍处于肮脏的存储库状态,该标记仍在其中。
答案 4 :(得分:-2)
对我有用的是mvn clean
。