学习笔记 使用IDEA搭建 SpringBoot分布式项目框架
- 创建新项目
-
选择Maven,下一步
-
填写信息,创建
-
当前创建的是父级Module,可以删掉src目录,添加打包指引(父模块打包类型必须为pom)
<packaging>pom</packaging>
- 在父模块下建立子模块
- 这里我们以SpringBoot为例,创建SpringBoot项目子模块
- 我们创建一个API模块,填写信息,完成创建
- 选择依赖,下一步后完成创建
- 此步重点(实例见下图)
- 父模块引入子模块
- 子模块声明父模块信息
- 全局信息只需在父pom中声明
- 在创建该SpringBoot子项目后,直接把子pom的
parent
标签内容拿到父pom中
我们开始创建的父pom是空的maven项目,而子pom继承于SpringBoot框架,这样就是让我们创建的父项目继承SpringBoot框架,再让子pom继承父pom,这样等同于间接性的告诉子项目:你的最上级是SpringBoot,只是多了一级管理
建立更多模块同理
- 如果我们要在一个模块中使用另一个模块
- 这样,一个入门级的SpringBoot分布式项目框架就搭建成功了
pom代码实例
父POM cloud-dev
<?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>
<packaging>pom</packaging> <!--父模块打包类型必须为pom-->
<groupId>com.cloud</groupId>
<artifactId>cloud-dev</artifactId>
<version>1.0-SNAPSHOT</version>
<!--父工程引入子模块-->
<modules>
<module>cloud-api</module>
<module>cloud-tool</module>
</modules>
<!-- parent指明继承关系,给出被继承的父项目的具体信息-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!-- 全局信息-->
<properties>
<java.version>1.8</java.version>
</properties>
<!--子模块都包含的包可以在父pom中统一管理-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!--Redis-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
</dependencies>
</project>
子模块cloud-api
<?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>
<!--继承于父工程cloud-dev-->
<parent>
<groupId>com.cloud</groupId>
<artifactId>cloud-dev</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>com.cloud.api</groupId>
<artifactId>cloud-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>cloud-api</name>
<description>Demo project for Spring Boot</description>
<!--此处放置该只有该模块有的信息-->
<properties>
</properties>
<!--此处放置该只有该模块有的依赖-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--要在api模块使用tool模块-->
<dependency>
<groupId>com.cloud.tool</groupId>
<artifactId>cloud-tool</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>