<>step1. 新建父级项目:

新建springboot项目,删除src文件夹,父项目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.xqnode</groupId> <artifactId>
maven-multi</artifactId> <packaging>pom</packaging> <version>1.0-SNAPSHOT</
version> <properties> <project.build.sourceEncoding>UTF-8</
project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</
project.reporting.outputEncoding> <java.version>1.8</java.version> </properties>
<parent> <groupId>org.springframework.boot</groupId> <artifactId>
spring-boot-starter-parent</artifactId> <version>2.1.1.RELEASE</version> </
parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId
>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</
artifactId> </dependency> <!--jpa--> <dependency> <groupId>
org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</
artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>
mysql-connector-java</artifactId> </dependency> </dependencies> <build> <
finalName>maven-multi-${version}</finalName> <plugins> <plugin> <groupId>
org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId
> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </
plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>
spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
<>step2. 新建子项目dao、web和service


新建三个子模块,都是maven项目,名称分别是web、service和dao。建完后注意看父模块的pom文件中引入了子模块的module:
<modules> <module>web</module> <module>dao</module> <module>service</module> </
modules>
我们在使用子项目的时候记得要引入需要的其他子模块的依赖,例如在web模块中引入service模块,这样才能正常使用:
<dependency> <groupId>com.xqnode</groupId> <artifactId>service</artifactId> <
version>1.0-SNAPSHOT</version> </dependency>
同理,在service模块我们需要引入dao的依赖:
<dependency> <groupId>com.xqnode</groupId> <artifactId>dao</artifactId> <
version>1.0-SNAPSHOT</version> </dependency>
完成后的工程目录是这样的:

至此maven多模块的配置就已经完成。我把一个完整的项目拆分成3个子项目来分别开发。下面开始验证项目是否可以正常运行。

<>step3. 验证结果

我在web模块的resources文件夹中加入配置文件,在其外部加入启动类,让项目可以启动起来:

启动类是一个简单的springboot项目:
import org.springframework.boot.SpringApplication; import org.springframework.
boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class
Application { public static void main(String[] args) { SpringApplication.run(
Application.class, args); } }
配置文件参考:
server: port: 8001 spring: jpa: hibernate: ddl-auto: none show-sql: false
datasource: username: root password: 123456 url: jdbc:mysql://localhost:
3306/mytest?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone
=UTCdriver-class-name: com.mysql.cj.jdbc.Driver
启动项目:

看到这里,我们就验证成功了,项目正常运行,我写了一个接口测试下:
import com.xqnode.model.JsonResult; import com.xqnode.service.UserService;
import org.springframework.beans.factory.annotation.Autowired; import org.
springframework.web.bind.annotation.GetMapping; import org.springframework.web.
bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.
RestController; @RestController @RequestMapping("/user") public class
UserController { @Autowired private UserService userService; @GetMapping(
"/findAll") public JsonResult findAll() { return JsonResult.dataResult(
userService.findAll()); } }
访问接口:
http://localhost:8001/user/findAll <http://localhost:8001/user/findAll>
返回数据:


接口结果也是正常的。说明我们的maven多模块项目配置成功。大家可以去码云上看看优秀的java开源项目,很多都是使用多模块配置的,很有参考价值。

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信