1. 程式人生 > >Maven的多模組(Multi-Module)工程的pom編寫

Maven的多模組(Multi-Module)工程的pom編寫

對於使用maven的骨架建立工程,想必大家都已經熟悉了,這裡是一些常用的工程型別,如想看到更多的骨架可以使用mvn的互動式Interactive generate Goal建立指令:mvn archetype:generate

// Creating a simple java application 
mvn archetype:create -DgroupId=[your project's group id] -DartifactId=[your project's artifact id] 

// Creating a webapp 
mvn archetype:create -DgroupId=[your project's group id] -DartifactId=[your project's artifact id] -DarchetypeArtifactId=maven-archetype-webapp

// Creating a site

 
mvn archetype:create -DgroupId=[your project's group id] -DartifactId=[your project's artifact id] -DarchetypeArtifactId=maven-archetype-site-simple

// Creating a mojo 
mvn archetype:create -DgroupId=[your project's group id] -DartifactId=[your project's artifact id] -DarchetypeArtifactId=maven-archetype-mojo

// Creating a portlet
 
mvn archetype:create -DgroupId=[your project's group id] -DartifactId=[your project's artifact id] -DarchetypeArtifactId=maven-archetype-portlet

現在想介紹的是多模組的工程的構建。

典型的多模組劃分,即按MVC的分層方式來構建多個模組,如工程包括web,business,core3個模組。好我們先看看主工程的pom中應新增些什麼,請注意紅色文字部分

1.主工程的pom檔案中內容:

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.your-company.xxxx</groupId>
    <artifactId>xxxx</artifactId>
    <packaging>pom</packaging>

 
    <version>1.0</version>
    <name>xxxx Project</name>
    <url>http://maven.apache.org</url>

    <!-- 工程所包含的模組 -->

    <modules> 
        <module>xxxx-core</module>
        <module>xxxx-business</module>
        <module>xxxx-web</module>
    </modules>

2.Web模組的pom檔案:

    <!-- 父級的pom檔案位置 -->

    <parent>
        <groupId>com.your-company.xxxx</groupId>
        <artifactId>xxxx</artifactId>
        <version>1.0</version>
        <relativePath>../pom.xml</relativePath>
    </parent>

    <groupId>com.your-company.xxxx</groupId>
    <artifactId>xxxx-web</artifactId>
    <packaging>war</packaging>
    <version>1.0</version>
    <name>xxxx-web/name>
    <url>http://maven.apache.org</url>

    <dependencies>
        <!-- Application Dependencies -->
<!-- Web層所依賴的上兩層模組 -->

        <dependency>
            <groupId>com.your-company.xxxx</groupId>
            <artifactId>xxxx-core</artifactId>
            <version>${version}</version>
        </dependency>
        <dependency>
            <groupId>com.your-company.xxxx</groupId>
            <artifactId>xxxx-business</artifactId>
            <version>${version}</version>
        </dependency>

        ...

    <dependencies>

3.完成後,mvn eclipse:eclipse後的檔案目錄為:

xxxx

├─xxxx-core

│  ├─pom.xml 
│  ├─.settings
│  ├─src
│  │  ├─main
│  │  │  ├─java
│  │  │  └─resources
│  │  └─test
│  │      ├─java
│  │      └─resources
│  └─target
│      ├─classes
│      └─test-classes

├─xxxx-business 
│  ├─pom.xml 
│  ├─.settings
│  ├─src
│  │  ├─main
│  │  │  ├─java
│  │  │  └─resources
│  │  └─test
│  │      ├─java
│  │      └─resources
│  └─target
│      ├─classes
│      └─test-classes

├─xxxx-web

│  ├─pom.xml 
│  ├─.settings
│  ├─src
│  │  ├─main
│  │  │  ├─java
│  │  │  └─resources
│  │  └─test
│  │      ├─java
│  │      └─resources
│  └─target
│      ├─classes
│      └─test-classes

|--pox.xml