本文是针对多个微服务合并所需。若从一开始创建的项目就配置好父子项目关系,则无需合并。
一、父级Maven项目
1.创建
file——new——maven project——next——填写group Id 、Artifact Id、检查包名——finish
2.pom.xml文件中<packaging>jar</packaging>应该改为<packaging>pom</packaging>
3.右击项目名称——Maven——Update project
到此,父级maven项目已经建好了
二、公共模块(公共模块,实体类等供多个微服务调用)
1.file——new——other——maven——maven module——next——填写子级项目名称Module Name——选择依赖的父级项目,就是刚刚创建好的。(在此,如果没有修改父级pom.xml中的packaging类型,就会提示The parent project must have a packaging type of POM。所以需要进行修改。执行上边的2、3步骤即可。)——next——next——修改包名,同于父级包名即可。——finish
2.打开父级项目的pom.xml,最下方你会发现多出了子模块
<modules>
<module>你的子级项目1</module>
<module>你的子级项目1</module>
<module>你的子级项目1</module>
</modules>
3.查看子级模块的pom.xml文件
<parent>
<groupId>父级包名</groupId>
<artifactId>父级项目名</artifactId>
<version>版本号</version>
</parent>
表示添加依赖成功。
子级的<groupId>net.groupId</groupId>
<version>0.0.1-SNAPSHOT</version>与父级的一致,可以删除,用父级的就好。
将子级pom文件中<properties>节点剪切到父级pom文件
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Finchley.SR2</spring-cloud.version>
</properties>
避免因为项目中重复引入或版本不一致导致的错误问题。
合并提取
合并:就是把多个微服务中公用的重复的东西提取出来,放在父级pom.xml文件中引用。
提取:提取出所有的dao等放在一个子模块中(创建步骤同于子模块创建),可以统一调用,在子模块的pom.xml文件中添加公共模块的附属引用即可。
<dependency>
<groupId>net.groupId</groupId>
<artifactId>dao</artifactId>
<version>${project.version}</version>
</dependency>
三、微服务的创建(需要安装spring boot,具体百度)
1.new——spring boot——spring starter project——next(修改项目资料 name、artifact、package、描述等等)——next(选择自己需要的依赖,仅供别人调用添加web,consul,需要数据库添加jpa及所需数据库mysql/oracle等,需要调其他微服务的添加ribbon,做转发的微服务添加zuul,需要rabbitmq消息队列的添加amqp,用到redis做缓存数据时需要添加redis和jedis。其他的我也不太知道了)——finish(如果maven报错,jar找不到,可以到指定目录看一下有木有这个jar,删了重新下载 clean一下就好了)
2.将pom文件中的下面这段代码
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent>
粘贴到父级maven项目的pom文件中
修改微服务中的parent节点为刚刚创建的父级maven项目。
删掉微服务的pom.xml文件中重复配置的部分
至此,一个微服务关联成功!文章漏洞失误及后续操作待完善。。。。