2013-10-14 13 views
0

我有以下的SCM標籤添加到我的主人POM:這是與MVN版本的問題:準備

<scm> 
    <developerConnection> 
     scm:svn:http://<server>/svn/<svnpath>/${project.artifactId}/trunk 
    </developerConnection> 
</scm> 

我認爲這是整潔。所有懸掛大師的項目都採用路徑策略。

當我來做一個發佈:準備在一個子項目上失敗。

子POM與添加到它的格式的SCM標籤結束:

<scm> 
    <developerConnection> 
     scm:svn:http://<server>/svn/<svnpath>/<artifact>/tags/v1.0.0 
    </developerConnection> 
</scm> 

的subsequesnt SVN命令行然後嘗試從標籤來標記和失敗:

[INFO] Executing: cmd.exe /X /C "svn --non-interactive copy --file C:\DOCUME~1\<me>\LOCALS~1\Temp\maven-scm-1302559010.commit http://<server>/svn/<svnpath>/<artifact>/tags/v1.0.0 http://<server>/svn/<svnpath>/<artifact>/tags/v1.0.0" 

Q1。這是Maven發佈的錯誤嗎? Q2。如果它不是bug,我不能像我那樣在master中定義scm標籤嗎?

在孩子中硬編碼scm標籤實際上修復了它,但由於我們有許多子項目,我希望在可能的情況下在主pom中定義此項。

回答

1

首先它不是一個錯誤。目的是每個項目都有自己的SCM區域,其中包含正確的信息。除此之外,該版本的插件週期中的信息是從喜歡的東西所取代:

<scm> 
    <developerConnection>scm:svn:http://<server>/project/trunk</developerConnection> 
</scm> 

爲以下:

<scm> 
    <developerConnection>scm:svn:http://<server>/project/tags/xyz-1.0.0</developerConnection> 
</scm> 

另外的想法,你不得不把信息轉化爲你的父母(主POM)像這樣:

<scm> 
    <developerConnection> 
     scm:svn:http://<server>/svn/<svnpath>/${project.artifactId}/trunk 
    </developerConnection> 
</scm> 

被換成了你的主人,聚甲醛釋放弄成這個樣子:

<scm> 
    <developerConnection> 
     scm:svn:http://<server>/svn/<svnpath>/master/tags/1.0.0 
    </developerConnection> 
</scm> 

這意味着每個孩子模塊都會使用上面那個是definitiv錯誤的。所以你必須在每個項目中分別設置scm區域。