创建项目结构:
父级
在父级创建Mould:


在该Module下又下两个Module:

项目创建完毕:
admin: 后台
common: 公共的类,配置,工具类
iaas: 网关和制授权
res: 资源
sys: 系统管理,用户
data-analysis: 系统统计
third:上报管理(第三方)
oa: 在线OA
把所有服务的service的pom.xml都引用自己服务的common模块:
1.先在父类把所有的包都打包:

把所有的版本号都定义在父类的pom.xml:
<properties><java.version>1.8</java.version><spring-cloud.version>Hoxton.SR3</spring-cloud.version><com-alibaba-cloud.version>2.2.0.RELEASE</com-alibaba-cloud.version><mybatis-plus-boot-stater.version>3.3.2</mybatis-plus-boot-stater.version><druid-boot-stater.version>1.1.23</druid-boot-stater.version><redisson-spring-boot-starter.version>3.13.3</redisson-spring-boot-starter.version><jetcache-starter-redis.version>2.6.0</jetcache-starter-redis.version><disruptor.version>3.4.2</disruptor.version><org.mapstruct.version>1.4.0.Beta3</org.mapstruct.version><commons-beanutils.version>1.9.4</commons-beanutils.version><swagger-annotations.version>1.5.20</swagger-annotations.version><googleauth.version>1.1.5</googleauth.version><net.sf.supercsv.version>2.4.0</net.sf.supercsv.version><springside-utils.version>5.0.0-RC1</springside-utils.version><aliyun-sdk-oss.version>3.1.0</aliyun-sdk-oss.version><aliyun-java-sdk-core.version>4.0.3</aliyun-java-sdk-core.version><aliyun-java-sdk-dm.version>3.3.1</aliyun-java-sdk-dm.version><joda-time.version>2.10</joda-time.version><okhttp.version>3.11.0</okhttp.version><okio.version>1.15.0</okio.version></properties>
<dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!-- https://mvnrepository.com/artifact/io.swagger/swagger-annotations --><dependency><groupId>io.swagger</groupId><artifactId>swagger-annotations</artifactId></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-annotation</artifactId></dependency><!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${com-alibaba-cloud.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>io.swagger</groupId><artifactId>swagger-annotations</artifactId><version>${swagger-annotations.version}</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mybatis-plus-boot-stater.version}</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-annotation</artifactId><version>${mybatis-plus-boot-stater.version}</version></dependency><!-- https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter --><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>${druid-boot-stater.version}</version></dependency><dependency><groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId><version>${commons-beanutils.version}</version></dependency><!-- https://mvnrepository.com/artifact/org.redisson/redisson-spring-boot-starter --><dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>${redisson-spring-boot-starter.version}</version></dependency><!-- https://mvnrepository.com/artifact/com.alicp.jetcache/jetcache-starter-redis --><dependency><groupId>com.alicp.jetcache</groupId><artifactId>jetcache-starter-redis</artifactId><version>${jetcache-starter-redis.version}</version></dependency><!-- https://mvnrepository.com/artifact/com.lmax/disruptor --><dependency><groupId>com.lmax</groupId><artifactId>disruptor</artifactId><version>${disruptor.version}</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>${swagger2.version}</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>${swagger2.version}</version></dependency><!--mapStruct依赖--><dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct-jdk8</artifactId><version>${org.mapstruct.version}</version></dependency><dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct-processor</artifactId><version>${org.mapstruct.version}</version><scope>provided</scope></dependency><dependency><groupId>net.sf.supercsv</groupId><artifactId>super-csv</artifactId><version>${net.sf.supercsv.version}</version></dependency><dependency><groupId>io.springside</groupId><artifactId>springside-utils</artifactId><version>${springside-utils.version}</version></dependency><dependency><groupId>org.flywaydb</groupId><artifactId>flyway-core</artifactId><version>${flyway.version}</version></dependency><dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><version>${joda-time.version}</version></dependency><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>${okhttp.version}</version></dependency><dependency><groupId>com.squareup.okio</groupId><artifactId>okio</artifactId><version>${okio.version}</version></dependency><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>${aliyun-sdk-oss.version}</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>${aliyun-java-sdk-core.version}</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-dm</artifactId><version>${aliyun-java-sdk-dm.version}</version></dependency></dependencies></dependencyManagement>
1、在Maven中dependencyManagement的作用其实相当于一个对所依赖jar包进行版本管理的管理器。
2、pom.xml文件中,jar的版本判断的两种途径
1)如果dependencies里的dependency自己没有声明version元素,那么maven就会到dependencyManagement里面去找有没有对该artifactId和groupId进行过版本声明,如果有,就继承它,如果没有就会报错,告诉你必须为dependency声明一个version。
2)如果dependencies中的dependency声明了version,那么无论dependencyManagement中有无对该jar的version声明,都以dependency里的version为准。
3、1)dependencies即使在子项目中不写该依赖项,那么子项目仍然会从父项目中继承该依赖项(全部继承)
2)dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示的声明需要用的依赖。如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,并且version和scope都读取自父pom;另外如果子项目中指定了版本号,那么会使用子项目中指定的jar版本。
