参考文章:https://blog.csdn.net/qq_34410726/article/details/98214992
一、maven分布式工程的基本架构
demo #父工程模块,主要用来定义整个分布式工程的依赖版本
---- common #公共模块,主要用来定义一些公共的组件,比如实体类等
---- function-one #功能模块1,引入common模块
---- function-two #功能模块2,引入common模块
---- pom.xml
二、maven父工程demo的搭建
1.打开IDEA,File->New->New Project,然后选择Empty Project,如下:
接下来会弹出窗口让我们新建modules,点击+号,新建一个父工程,也就是一个父module。然后我们选择maven工程,选择jdk版本
2.pom.xml
创建好之后,该父工程demo是个空的maven工程,只有src目录和pom.xml文件,删除src目录,修改pom.xml
<?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.sc</groupId>
<artifactId>demo</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>demo</name>
<description>This is parent project</description>
<!-- 子模块清单(创建新子模块后,会自动填入)-->
<modules>
<module>common</module>
<module>function-one</module>
<module>function-two</module>
</modules>
<!-- 本项目的父模块使用spring-boot框架 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.2.RELEASE</version>
</parent>
<!-- 项目自定义属性 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<!-- 依赖的版本号:在定义版本时,要注意的是不同的依赖版本之间会有影响,有些最新的版本不支持其他依赖的低版本一起使用-->
<mysql.driver.version>5.1.29</mysql.driver.version>
<org.mybatis.spring.boot.version>1.3.1</org.mybatis.spring.boot.version>
<alibaba.druid.version>1.1.9</alibaba.druid.version>
<spring.cloud.version>Edgware.SR1</spring.cloud.version>
</properties>
<!-- 项目依赖项 -->
<dependencyManagement> <!-- dependencyManagement只是声明依赖,并不实现引入 -->
<dependencies>
<!-- Spring Cloud -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- Spring Boot -->
<dependency>
<groupId>org.springframework.boo