2008-09-18 31 views
5

使用我的多项目pom时,运行版本时出现错误:准备。项目设置和每个发布步骤之前都没有什么奇特的事情可以运行。 我得到的错误是:mvn为何发布:在标记时准备失败?

 
    [INFO] ------------------------------------------------------------------------ 
    [ERROR] BUILD FAILURE 
    [INFO] ------------------------------------------------------------------------ 
    [INFO] Unable to tag SCM 
    Provider message: 
    The svn tag command failed. 
    Command output: 
    svn: Commit failed (details follow): 
    svn: File '/repos/june/tags/foo-1.0.2/foo.bar.org/pom.xml' already exists 

任何想法来自何处以及如何解决它?

(对不起,重复后 - 。第一个被关闭,因为我没有制定它可以回答的问题,我希望它现在是OK)

编辑
Maven的版本插件需要照顾版本处理本身。所以当我检查Subversion版本库中的路径时,路径还不存在。

EDIT 2
@Ben:我不知道服务器的版本,但客户端是1.5.2了。

回答

10

This问题在最新版本的maven-release-plugin中解决。将其添加到您的POM中以将其拉入。

<build> 
    <pluginManagement> 
    <plugins> 
     <plugin> 
     <artifactId>maven-release-plugin</artifactId> 
     <version>2.0-beta-9</version> 
     </plugin> 
    </plugins> 
    </pluginManagement> 
</build> 

已修复的问题是MRELEASE-375

0

据我所知它是Subversion 1.5中的一个bug,并且与maven没有直接关系。然而,解决它的方法是更新本地svn存储库并运行该版本:再次准备目标。

1

这是因为您没有增加版本号 - 1.0.2已经存在于您的Subversion回购中。

要么增加您的版本,要么从您的回购库中删除/repos/june/tags/foo-1.0.2标签。

0

我花了很长时间与此战斗。 SVN 1.5.1+中的某些内容不同于直接从工作拷贝提交给标签 - 这正是Maven所做的。对于谁来负责解决问题仍然有很多指责。

您可以执行'svn update'并重新运行release命令,但是如果您正在执行release:分支,则会导致release插件不会将您的POM文件恢复到之前的状态。

我知道的最好的解决方法是退回到Subversion 1.5.0。

1

罗兰,如果你还没有看到这个,请看看John Smart的博客文章关于这个问题。虽然他提出的脚本是不雅的,它解决了这个问题:

http://weblogs.java.net/blog/johnsmart/archive/2008/12/subversion_mave.html

另一个解决方案是使用Git的。 (我==目前正在写关于Maven和Git)

+0

谢谢你的额外信息。我还不知道博客条目。 – 2009-02-19 06:54:11

0

这是最新版本的插件发布fixed,2.0-β-9