之前写项目,虽然用的是Maven,但是并没有考虑模块化的搭建,所有的文件都写在一个项目里,即:整个项目中只有一个POM文件,所有的功能都写在一个项目包下的各个子包内。最近在看了SpringBoot和SpringCloud等相关教学视频后,才了解到Maven项目的模块化搭建方式,模块化工程方便团队成员的分工以及各个模块的测试。
花了一两天时间来消化这个概念和方式:
这是我经过自己的理解之后动手搭建的一个父子模块化项目:
结构如下:
- manager(父工程)
- —service(子工程)
- —web(子工程)
父工程由Project创建,再在其基础上创建Module,其中父工程里除了POM和项目的.iml文件外,其他文件都需删除。
三个项目的命名域如下:
manager:
<groupId>com.welfarezhu</groupId>
<artifactId>manager</artifactId>
<version>0.0.1-SNAPSHOT</version>
service:
<groupId>com.welfarezhu</groupId>
<artifactId>service</artifactId>
<version>0.0.1-SNAPSHOT</version>
web:
<groupId>com.welfarezhu</groupId>
<artifactId>web</artifactId>
<version>0.0.1-SNAPSHOT</version>
模块化工程主要是需要修改pom文件的依赖关系和其他的配置信息,首先我们修改父工程的配置:
manager .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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.welfarezhu</groupId>
<artifactId>manager</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging> //重点
<name>manager</name>
<description>Demo project for Spring Boot</description>
//配置国内镜像
<repositories>
<repository>
<id>nexus-aliyun</id>
<name>nexus-aliyun</name>
<url>http://maven.aliyun.