2011-06-19 106 views
1

我對我的pom.xml文件中的scm標籤有點問題。哪裏放置scm標籤?

我的項目結構是這樣的:

Parent 
Submodule1 
Submodule2 
reactor 

家長是容納所有Maven插件配置的項目,librairies版本等。它是所有子模塊的母公司的反應堆項目的母公司。

反應器是一個pom.xml文件,它包含標籤來編譯所有的子模塊。

我想將scm標籤放在父pom.xml中,因爲它是較高的pom.xml。但是當我想要做一個「mvn發佈:準備」時我會遇到一個錯誤。

所以我把SCM標籤放在reactor pom.xml中,它可以工作。

它對我很好,它的工作:)但我不明白爲什麼我需要把scm標籤放在反應堆中。

有人能解釋我這種行爲嗎?

謝謝。

編輯:

這裏的文件夾結構:

root 
    parent 
    pom.xml (parent) 
    submodule1 
    pom.xml 
    submodule2 
    pom.xml 
    pom.xml (reactor) 

這裏是POM反應器的有趣的部分:

<parent> 
    <groupId>groupId</groupId> 
    <artifactId>parent</artifactId> 
    <relativePath>./parent/pom.xml</relativePath> 
    <version>1.0.2-SNAPSHOT</version> 
</parent> 

<modules> 
    <module>parent</module> 
    <module>submodule1</module> 
     <module>submodule2</module> 
</modules> 

最後,這裏是爲發佈錯誤:準備:

[INFO] Un能夠標記SCM 提供程序消息: svn標記命令失敗。 命令輸出: 的svn:路徑「http://10.211.55.4/svn/trunk/reactor」不存在修改112

+0

你有什麼樣的錯誤? (消息?)你可以給文件夾結構的POM的位置?你是如何做出pom的關係的(通過家長?)你的反應堆是什麼樣的?(包含在 ......? – khmarbaise

回答

1

第一個要求是主幹,標籤和分支在SVN文件夾中,我assuem但 您必須僅在反應器中定義scm部分,而不是在父級中。

root 
    +-- pom.xml (reactor) 
    +-- parent 
    !  +-- pom.xml (parent) 
    +-- submodule1 
    !  +-- pom.xml 
    +-- submodule2 
      +-- pom.xml 

此外,你應該定義maven-release-plugin(reactor)以及true。

這種情況的缺省處理是Maven會對SVN路徑做相對變化。這會產生像你一樣的麻煩。所以你必須把這些信息放入反應堆pom中,而不是放入父pom中。非常重要的是隻有一個配置。

此外,我會建議刪除父母,並把信息放入反應堆,因爲你會在網站生成階段遇到麻煩。

root 
    +-- pom.xml (parent) 
    +-- submodule1 
    !  +-- pom.xml 
    +-- submodule2 
      +-- pom.xml