1. 程式人生 > >Eclipse下使用maven搭建多模組專案

Eclipse下使用maven搭建多模組專案

暫時將專案分為如下幾層:

domain(域模型層)、dao(資料庫訪問層)、service(業務邏輯層)、web(表現層),有需要再另行新增(如common等);

目錄結構:


一、app

該層為父層,管理其它模組層。

1.1 建立Maven Project


1.2 選擇maven-archetype-quickstart


1.3 刪除src資料夾,修改pom.xml檔案,將<packaging>jar</packaging>修改為<packaging>pom</packaging>,pom表示它是一個被繼承的模組

修改之後的配置檔案:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.bdong</groupId>
  <artifactId>app</artifactId>
  <version>0.0.1-SNAPSHOT</version>

  <name>app</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  
  <span style="color:#ff0000;"><strong><packaging>pom</packaging></strong></span>
  
  <modules>
    <module>app-domain</module>
    <module>app-dao</module>
    <module>app-service</module>
    <module>app-web</module>
  </modules>
</project>

二、app-domain

2.1 建立Maven Module


2.2 選擇maven-archetype-quickstart

2.3 修改app-domain目錄中的pom.xml檔案,把<groupId>com.bdong</groupId><version>0.0.1-SNAPSHOT</version>去掉,加上<packaging>jar</packaging>,groupId和version會繼承app中的groupId和version,packaging設定打包方式為jar


修改後的配置檔案:
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.bdong</groupId>
    <artifactId>app</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  
  <artifactId>app-domain</artifactId>
  <strong><span style="color:#ff0000;"><packaging>jar</packaging></span></strong>
  
  <name>app-domain</name>
  <url>http://maven.apache.org</url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project><strong>
</strong>

三、app-dao

3.1 建立Maven Module

3.2 選擇maven-archetype-quickstart

3.3 修改app-dao目錄中的pom.xml檔案,,把<groupId>com.bdong</groupId>和<version>0.0.1-SNAPSHOT</version>去掉,加上<packaging>jar</packaging>,因為groupId和version會繼承app中的groupId和version,packaging設定打包方式為jar,同時新增對app-domain模組的依賴

修改後的配置檔案:
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.bdong</groupId>
    <artifactId>app</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  
  <artifactId>app-dao</artifactId>
  <packaging>jar</packaging>
  
  <name>app-dao</name>
  <url>http://maven.apache.org</url>
  
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  
  <dependencies>
  	<!--依賴app-domain模組-->
  	<dependency>
		<groupId>com.bdong</groupId>
		<artifactId>app-domain</artifactId>
		<version>${project.version}</version>
	</dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  
</project>

四、app-service

4.1 建立Maven Module

4.2 選擇maven-archetype-quickstart

4.3  修改app-service目錄中的pom.xml檔案,,把<groupId>com.bdong</groupId><version>0.0.1-SNAPSHOT</version>去掉,加上<packaging>jar</packaging>packaging設定打包方式為jar,同時新增對app-dao模組的依賴app-service依賴app-dao和app-domain,但是隻需新增app-dao的依賴即可,因為app-dao已經依賴了app-domain。

修改後的配置檔案:
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.bdong</groupId>
    <artifactId>app</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  
  <artifactId>app-service</artifactId>
  <packaging>jar</packaging>
  
  <name>app-service</name>
  <url>http://maven.apache.org</url>
  
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  
  <dependencies>
  	<dependency>
		<groupId>com.bdong</groupId>
		<artifactId>app-dao</artifactId>
		<version>${project.version}</version>
	</dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

五、app-web

5.1 建立Maven Module

5.2 選擇maven-archetype-webapp

5.3 修改app-web目錄中的pom.xml檔案,,把<groupId>com.bdong</groupId><version>0.0.1-SNAPSHOT</version>去掉,修改打包方式為<packaging>war</packaging>新增對app-service模組的依賴

修改後的配置檔案:
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.bdong</groupId>
    <artifactId>app</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  
  <artifactId>app-web</artifactId>
 <strong> <span style="color:#ff0000;"><packaging>war</packaging></span></strong>
  
  <name>app-web Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
  	<dependency>
		<groupId>com.bdong</groupId>
		<artifactId>app-service</artifactId>
		<version>${project.version}</version>
	</dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <finalName>app-web</finalName>
  </build>
</project>

六,編譯


控制檯列印資訊:

七、執行

7.1 新增app-web到tomcat中


7.2 執行tomcat,然後在瀏覽器中訪問:localhost:8080/app-web


最終,目錄結構為: