IDEA Maven 三層架構 一、基本的Archetype 搭建

Markdown

  • JDK:1.8
  • Maven:3.3.9
  • 三層架構:基於 SpringMVC 的 UI 層、業務邏輯層以及數據訪問層

從對 Maven 的瞭解能夠看出,三層架構的建立在於對文件夾的合理安排,他們一般是主子結構,其次還要運用到 Maven 的聚合和繼承。javascript

基本的 Archetype 搭建

建立 sln 組件。直接使用空架構建立便可:

Markdown

順便創建項目,並完善項目的名稱和路徑等信息:

Markdown

項目(工程)的名稱:以大寫字母開頭,擬定一個正式的名稱。
項目(工程)的位置:最好是一個全新的文件夾,文件夾名稱也最好與項目的名稱保持統一。java

模塊的名稱與 artifactId 相同,方便識別。
模塊的位置也放置在一個全新的文件夾裏,其名稱跟模塊的名稱也保持統一。web

完善 sln 組件

  • sln 一方面起聚合做用,一方面做爲繼承機制的基類,因此它不須要實質內容,僅需一個 pom.xml 便可:

Markdown
故而刪除 src 這一文件夾,從而剩下 pom.xml:spring

Markdown

完善 sln 的 pom.xml

  • 設置 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.ruanxi.monkey</groupId>
    <artifactId>monkey-sln</artifactId>
    <version>1.0-SNAPSHOT</version>
 
    <packaging>pom</packaging>
    <name>Monkey-sln</name>
 
    <!--聚合-->
    <modules>
        <module>monkey-web</module>         
    </modules>
 
    <!--參數-->
    <properties>
        <springframework.version>4.3.2.RELEASE</springframework.version>
        <junit.version>4.12</junit.version>
    </properties>
 
    <!--依賴管理-->
    <dependencyManagement>
        <dependencies>
 
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
            </dependency>
 
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${springframework.version}</version>
            </dependency>
 
        </dependencies>
    </dependencyManagement> 
 
</project>

module元素的值採用的是 artifactId,即當sln項目與各子項目是「主子目錄」結構,而若是是「平級目錄」結構就須要在前面追加「../」。apache

基於 sln 解決方案建立 Web 子組件模塊

Markdown

直接在 sln 上進行右鍵操做。經過這種建立方式,就能夠自動創建起「聚合」和「繼承」配置(這主要仰賴於 IDEA 開發環境)。架構

建立 Web 組件能夠選擇 webapp 這一 Archetype 架構來建立,它能夠自動建立 WEB-INF 目錄:app

Markdown

新建 web 組件webapp

Markdown

確保 web 組件放置在 sln 的子目錄中,成爲「主子目錄」結構,這與微軟 VS 的解決方案很相像。maven

Markdown

文件夾的主子結構:ui

Markdown

這樣,在繼承機制中,web 的 pom.xml 要想尋找到 sln 的 pom.xml,只須要註明「../pom.xml」便可(實際上,Parent 元素的 relativePath 的默認值就是這個):

這時,檢查一下 sln 的 pom.xml 裏是否將 web 作了聚合配置(modules),並檢查 web 組件本身在繼承機制上的配置(parent)。
sln pom.xml:

Markdown

web pom.xml:

Markdown

<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/maven-v4_0_0.xsd">
    <parent>
        <artifactId>monkey-sln</artifactId>
        <groupId>com.ruanxi.monkey</groupId>
        <version>2.0-SNAPSHOT</version>
 
        <relativePath>../pom.xml</relativePath>
    </parent>
 
    <modelVersion>4.0.0</modelVersion>
    <artifactId>monkey-web</artifactId>
    <packaging>war</packaging>
 
    <name>Monkey-web</name>
 
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
 
    <dependencies>
 
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>monkey-service</artifactId>
            <version>${project.version}</version>
        </dependency>
 
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
    </dependencies>
 
    <build>
        <finalName>MonkeyPackage</finalName>
    </build>
 
</project>
相關文章
相關標籤/搜索