回想2013年毕业入行Java开发以来已经有7年左右的时间,还记得刚工作不久第一次接触公司架构师,他帮我们项目做了一个公用的工具类,那时感觉他好niubi啊。。。然后就想象着哪天自己也能像他一样能成为公司架构师。可是计划赶不上变化,在做开发不到2年就阴差阳错的走上了项目管理之路。一做管理深似海,以前的业务兴趣爱好也基本消磨殆尽,唯独对技术还保留着最初的梦想。。。很多年前就一直想自己从0开始搭建一套自己的开发平台,一直未实现(失败的理由总是很多)。最近终于下定决要这这件一直想做的事了,话不多说,直接开干!
下面开始使用Maven构建基于SpringBoot+SpringCloud的微服务开发平台(使用Maven构建项目的好处我就不多说了,百度上一堆),首先既然我们要构建的开发平台是一个微服务化的平台,那么肯定会涉及到很多个能够独立运行的小服务或者一些抽离出来的公用功能模块。所以我们采用Maven的父子模块来完成整个平台的构建。
1.1、使用STS构建父模块,详细步骤如下如图所示:
1.2、创建子模块(真正的业务模块),详细步骤如下如所示:
好了,到此为止我们成功创建了一个父模块和子模块,打开父工程的pom文件你会发现多了一个msp-gateway的子模块,如下图:
2.1、在父工程的pom文件添加SpringBoot和SpringCloud的依赖,参考如下图:
<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.summer</groupId>
<artifactId>msp</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<description>msp父工程</description>
<modules>
<module>msp-gateway</module><!-- API接入网关 -->
<module>msp-user</module>
<module>msp-pay</module>
</modules>
<properties>
<java.version>1.8</java.version>
<!-- maven -->
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<!-- 文件拷贝时的编码 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- 项目依赖的三方框架 -->
<spring-cloud.version>Finchley.SR2</spring-cloud.version>
<spring-boot.version>2.0.6.RELEASE</spring-boot.version>
<lombok.version>1.16.20</lombok.version>
</properties>
<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>
<!--spring-boot-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--Lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>