2012-04-29 116 views
0

這是一個基本的問題,我只是不太熟悉maven多模塊結構。說,我有一個Web應用程序。我想連接一些模塊(一些服務)。我是否需要製作一個Web應用程序只是其中一個模塊,依賴於其他模塊,然後運行它?起初我以爲我可以運行整個項目,但是這個選項在我的IDE中變得不活躍(我現在使用的是NetBeans),這讓我覺得我應該運行一個主模塊(在這種情況下是一個Web應用程序)。是這樣嗎?提前致謝。運行一個多模塊的Maven項目

回答

4

如果你有一個多模塊項目,你需要一個像下面這樣的結構,它也將由文件夾結構來表示。

+-- root (pom.xml) 
    +--- module-1 
    +--- module-2 
    +--- module-war 

而根部模塊包含這樣一件事:

<project ..> 

    <groupId>com.test.project</groupId> 
    <artifactId>parent</artifactId> 
    <version>1.0-SNAPSHOT</version> 

    <modules> 
    <module>module-1</module> 
    <module>module-2</module> 
    <module>module-war</module> 
    </modules> 

</project> 

在模塊-1的POM應該是這樣的:

<project ..> 
    <parent> 
    <groupId>com.test.project</groupId> 
    <artifactId>parent</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    </parent> 

    <artifactId>module-1</artifactId> 

    dependencies for the module 

</project> 

模塊-2看起來更或更少的相同..在戰爭模塊它看起來像:

<project ..> 
    <parent> 
    <groupId>com.test.project</groupId> 
    <artifactId>parent</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    </parent> 

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

    dependencies for the module 

</project> 

如果您有例如模塊之間的依賴關係模塊1取決於模塊-2,它看起來像在模塊1以下:

<project ..> 
    <parent> 
    <groupId>com.test.project</groupId> 
    <artifactId>parent</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    </parent> 

    <artifactId>module-1</artifactId> 

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

    ..other dependencies.. 

    </dependencies> 

</project> 

構建和打包你的項目,你會去父文件夾和做只是一個

mvn clean package 
+0

哦,非常感謝這樣一個完整的答案。 – 2012-04-29 11:32:53