IDEA Maven 三层架构 1、基本的Archetype 搭建

时间:2022-09-13 17:02:38

IDEA Maven 三层架构 1、基本的Archetype 搭建

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

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

基本的 Archetype 搭建

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

IDEA Maven 三层架构 1、基本的Archetype 搭建

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

IDEA Maven 三层架构 1、基本的Archetype 搭建

项目(工程)的名称:以大写字母开头,拟定一个正式的名称。

项目(工程)的位置:最好是一个全新的文件夹,文件夹名称也最好与项目的名称保持统一。

模块的名称与 artifactId 相同,方便识别。

模块的位置也放置在一个全新的文件夹里,其名称跟模块的名称也保持统一。

完善 sln 组件

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

IDEA Maven 三层架构 1、基本的Archetype 搭建

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

IDEA Maven 三层架构 1、基本的Archetype 搭建

完善 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 子组件模块

IDEA Maven 三层架构 1、基本的Archetype 搭建

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

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

IDEA Maven 三层架构 1、基本的Archetype 搭建

新建 web 组件

IDEA Maven 三层架构 1、基本的Archetype 搭建

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

IDEA Maven 三层架构 1、基本的Archetype 搭建

文件夹的主子结构:

IDEA Maven 三层架构 1、基本的Archetype 搭建

这样,在继承机制中,web 的 pom.xml 要想寻找到 sln 的 pom.xml,只需要注明“../pom.xml”即可(实际上,Parent 元素的 relativePath 的默认值就是这个):

这时,检查一下 sln 的 pom.xml 里是否将 web 做了聚合配置(modules),并检查 web 组件自己在继承机制上的配置(parent)。

sln pom.xml:

IDEA Maven 三层架构 1、基本的Archetype 搭建

web pom.xml:

IDEA Maven 三层架构 1、基本的Archetype 搭建

<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>