zoukankan      html  css  js  c++  java
  • IDEA Maven 三层架构 1、基本的Archetype 搭建

    Markdown

    • JDK:1.8
    • Maven:3.3.9
    • 三层架构:基于 SpringMVC 的 UI 层、业务逻辑层以及数据访问层

    从对 Maven 的了解可以看出,三层架构的创建在于对文件夹的合理安排,他们通常是主子结构,其次还要运用到 Maven 的聚合和继承。

    基本的 Archetype 搭建

    创建 sln 组件。直接使用空架构创建即可:

    Markdown

    顺便建立项目,并完善项目的名称和路径等信息:

    Markdown

    项目(工程)的名称:以大写字母开头,拟定一个正式的名称。
    项目(工程)的位置:最好是一个全新的文件夹,文件夹名称也最好与项目的名称保持统一。

    模块的名称与 artifactId 相同,方便识别。
    模块的位置也放置在一个全新的文件夹里,其名称跟模块的名称也保持统一。

    完善 sln 组件

    • sln 一方面起聚合作用,一方面作为继承机制的基类,所以它不需要实质内容,仅需一个 pom.xml 即可:

    Markdown
    故而删除 src 这一文件夹,从而剩下 pom.xml:

    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项目与各子项目是“主子目录”结构,而如果是“平级目录”结构就需要在前面追加“../”。

    基于 sln 解决方案创建 Web 子组件模块

    Markdown

    直接在 sln 上进行右键操作。通过这种创建方式,就可以自动建立起“聚合”和“继承”配置(这主要仰赖于 IDEA 开发环境)。

    创建 Web 组件可以选择 webapp 这一 Archetype 架构来创建,它可以自动创建 WEB-INF 目录:

    Markdown

    新建 web 组件

    Markdown

    确保 web 组件放置在 sln 的子目录中,成为“主子目录”结构,这与微软 VS 的解决方案很相像。

    Markdown

    文件夹的主子结构:

    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>
    
  • 相关阅读:
    NFS挂载报错
    关于git的reset指令说明-soft、mixed、hard
    nginx关于限制请求数和连接数
    Jenkins初级使用过程中的异常处理(1)
    Jenkins的初级应用(2)-Invoke Phing targets
    Jenkins的初级应用(1)-Publish Over SSH
    解决Jenkins安装的时区问题
    用Ubuntu快速安装Jenkins
    TIME_WAIT状态过多的排查
    在linux环境下用中文查询数据库
  • 原文地址:https://www.cnblogs.com/ramantic/p/7569326.html
Copyright © 2011-2022 走看看