2014-04-16 72 views
0

我是maven的初學者。簡而言之,我在Web項目中有三個模塊:父模塊,Web模塊和服務模塊。如何在svn中配置多模塊maven項目的父模塊

parent-module 
    +----web-module 
    |   +----pom.xml 
    +----service-module 
    |   +----pom.xml 
    +----pom.xml 

通常情況下,父母可以module.pom.xml喜歡這樣的:

<modules> 
    <module>../web-module</module> 
    <module>../service-module</module> 
</modules> 

我如何配置父module.pom.xml當服務模塊是SVN和我沒有檢出它。

+1

爲什麼'web模塊'內的'parent-module'?似乎是違反直覺的。 – Raghuram

+0

對不起,這是我的錯誤 – LENS

回答

0

你的結構是錯誤的。更改文件夾結構使您的生活更輕鬆。

+-- parent-module (pom.xml) 
     +--- web-module (pom.xml) 
     +--- service-module (pom.xml) 

最好把上面的結構放到SVN中。這意味着您可以簽出項目的主幹,並且您將在工作副本中獲得上述結構。 所以結果是:

svn checkout URL/project/trunk workingcopy 

將創建下列到workgincopy文件夾:

+-- (pom.xml) 
     +--- web-module (pom.xml) 
     +--- service-module (pom.xml) 

基礎上你的父母模塊上方看起來就像這樣:

<project> 
    <groupId>whatEver</groupId> 
    <artifactId>project-parent</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    ... 
    <modules> 
    <module>web-module</module> 
    <module>service-module</module> 
    </modules> 
</project> 

現在你的孩子(網絡模塊)看起來像這樣:

<project> 
    <parent> 
    <groupId>whatEver</groupId> 
    <artifactId>project-parent</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    </parent> 

    <artifactId>web-module</artifactId> 
    <packaging>war</packaging> 

    <dependencies> 
    <dependency> 
     <groupId>whatEver</groupId> 
     <artifactId>service-module</artifactId> 
     <version>${project.version}</version> 
    </dependency> 
    </dependencies> 
... 
</project> 

最後是你的服務模塊是這樣的:

<project> 
    <parent> 
    <groupId>whatEver</groupId> 
    <artifactId>project-parent</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    </parent> 

    <artifactId>service-module</artifactId> 

... 
</project> 

所以在Maven中你可以改變你的項目(工作拷貝)的根,並通過以下構建整個項目:

mvn clean package 
+0

thx,但我的情況是,如果我有本地主機中的父模塊和web模塊,svn中的服務模塊,然後是父模塊pom.xml,其標記像你的那樣不能部署,因爲它說服務模塊不存在。我必須退出服務模塊嗎? – LENS