IDEA创建多个模块Maven SpringBoot项目
在学习springboot整合dubbo时,需要创建一些maven工程,结构目录如下:
springboot-dubbo-parent pom类型,定义公共的依赖信息
——springboot-dubbo-public-api-service pom类型,存放公共接口
————springboot-dubbo-api-member-service jar类型,会员服务提供接口
——springboot-dubbo-api-member-service-impl jar类型,会员服务接口的实现
——springboot-dubbo-order-web jar类型,订单项目调用会员项目
注意一定要搞清楚这些工程的层级结构,下面创建工程才能很清楚。
1.创建一个pom类型的maven父工程 springboot-dubbo-parent
生成的目录结构如下:
src目录可以删掉,没什么影响。
在pom文件里添加pom类型
添加依赖:
<!--springboot项目,需要此依赖--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.1.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> <curator-framework.version>4.0.1</curator-framework.version> <zookeeper.version>3.4.13</zookeeper.version> <dubbo.starter.version>0.2.0</dubbo.starter.version> </properties> <dependencies> <!--springboot的web依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--dubbo依赖--> <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>${dubbo.starter.version}</version> </dependency> <!--监控中心依赖--> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>${curator-framework.version}</version> </dependency> <!--zookeeper依赖--> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>${zookeeper.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
2.创建pom类型的模块springboot-dubbo-public-api-service,此模块位于springboot-dubbo-parent下。
在根项目上点击右键,选择Module
创建maven项目,因为父工程已经引入了springboot依赖,所以所有的子模块直接创建maven项目就可以了。
在pom文件里添加pom类型
在父工程的pom文件中,自动生成了子模块依赖。
parent项目下生成了springboot-dubbo-public-api-service模块
3.创建jar类型的 springboot-dubbo-api-member-service 模块,此模块位于springboot-dubbo-public-api-service下。
依照创建springboot-dubbo-public-api-service工程的步骤一下,在springboot-dubbo-public-api-service工程下创建子模块
springboot-dubbo-api-member-service。
生成的pom文件,不用做任何修改
springboot-dubbo-public-api-service工程的pom文件会自动生成子模块依赖。
生产的项目结构:
4.创建jar类型的 springboot-dubbo-api-member-service-impl 模块,此模块位于springboot-dubbo-parent下。
按照上面的步骤再创建一次springboot-dubbo-api-member-service-impl 模块
注意:在pom文件里添加依赖,依赖的是会员服务的接口模块springboot-dubbo-api-member-service,
而不是公共接口模块springboot-dubbo-public-api-service
5.创建jar类型的 springboot-dubbo-order-web 模块,此模块位于springboot-dubbo-parent下。
按照上面的步骤再创建一次springboot-dubbo-order-web 模块
注意:在pom文件里添加依赖,依赖的也是会员服务的接口模块springboot-dubbo-api-member-service
6.所有的模块都创建成功了,我们看一下项目的结构:
父工程的pom文件中也自动生成了三个子模块的依赖。
总结一下,其实我们说是创建springboot项目,其实并没有使用idea直接创建springboot项目,而是先创建了一个父工程的maven项目,然后在pom文件里添加的让它继承springboot的依赖,自然而然的父工程的所有子模块也是springboot项目了。
我试过先创建maven父工程,然后直接创建springboot子模块,但发现子模块的pom文件里,直接的父依赖是springboot-parent,而不是父工程,所以这种方式不太合适。