2008-09-18 53 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