Springboot+dubbo+maven构建多模块项目(一)

1 多模块项目创建
开发环境
编译器:idea
java版本:1.8
Springboot+dubbo+maven构建多模块项目(一)_第1张图片
1.1 父模块创建
首先我们在IDEA中创建一个spring boot工程作为父项目。
一、在界面左上角选择File->New->Project后,选择Spring Initializr(不要选择maven,maven运行不起来,报各种错误),默认使用的Java版本是1.8。

Springboot+dubbo+maven构建多模块项目(一)_第2张图片
Springboot+dubbo+maven构建多模块项目(一)_第3张图片

二、点击Next,进入下一步,可以设置项目的一些基本信息。
Springboot+dubbo+maven构建多模块项目(一)_第4张图片
三、点击Next,进入下一个选择dependency的界面,作用是在pom中自动添加一些依赖,在项目开始时就下载。这里我们暂时不勾选任何依赖
Springboot+dubbo+maven构建多模块项目(一)_第5张图片
四、点击Next,进入下一个界面,填写工程名,并选择工程所在目录。填写完成后,点击Finish,即可创建一个spring boot项目。
Springboot+dubbo+maven构建多模块项目(一)_第6张图片
1.2 创建子模块
在上面创建好的springboot-dubbo-parent工程名上,点击右键,选择New–>Module,进入New Module页面。
Springboot+dubbo+maven构建多模块项目(一)_第7张图片
该模块为dubbo服务的提供方,实现springboot-dubbo-api中定义的接口,Name为springboot-dubbo-server,后面其他的参数都可参照父模块的参数设置。
Springboot+dubbo+maven构建多模块项目(一)_第8张图片
Springboot+dubbo+maven构建多模块项目(一)_第9张图片
下面创建另一个Module,dubbo服务的调用方,Name为springboot-dubbo-client,其他参数设置参照上步。(步骤和springboot-dubbo-server步骤一样,这里就不重复了。

以上3个模块创建完成之后,整个项目的目录结构如下图所示。
我们可以删掉父模块的src目录,因为此处的父模块只做依赖管理,不需要编写代码。

Springboot+dubbo+maven构建多模块项目(一)_第10张图片
2 多模块项目配置
2.1 父模块pom配置
1、父模块的打包类型
多模块项目中,父模块打包类型必须是pom,同时以给出所有的子模块,其中每个module,都是另外一个maven项目。
我们的项目中目前一共有两个子模块,springboot-dubbo-server和springboot-dubbo-client。后续新增的子模块也必须加到父pom的modules中。
2、继承设置
继承是maven中很强大的一种功能,继承可以使子pom获得parent中的各项配置,对子pom进行统一的配置和依赖管理。父pom中的大多数元素都能被子pom继承,想深入了解的同学可自行搜索学习~~
maven项目之间的继承关系通过表示。这里使用的开发框架是spring boot,默认继承spring-boot-starter-parent
3、使用dependencyManagement管理依赖版本号
一般在项目最顶层的父pom中使用该元素,让所有子模块引用一个依赖而不用显式的列出版本号。maven会沿着父子层次向上走,直到找到一个拥有dependencyManagement元素的项目,然后它就会使用在这个dependencyManagement元素中指定的版本号。
4、使用properties控制依赖包的版本号,便于版本维护
在properties标签中,添加各依赖包的版本号,然后在dependency中直接引用该依赖版本号的值即可。
接下来配制springboot-dubbo-parent 的pom.xml


4.0.0
com.kuiniu
springboot-dubbo-parent
0.0.1-SNAPSHOT
pom

springboot-dubbo-parent
Demo project for Spring Boot


    org.springframework.boot
    spring-boot-starter-parent
    1.5.9.RELEASE
     



    springboot-dubbo-api
    springboot-dubbo-server
    springboot-dubbo-client


    UTF-8
    UTF-8
    1.8
    
    2.5.3
    3.4.5
    0.1


    
        
        
            org.springframework.boot
            spring-boot-starter-web
            1.5.9.RELEASE
        
        
        
            com.alibaba
            dubbo
            ${dubbo.version}
            
                
                    org.springframework
                    spring
                
            
        
        
            org.apache.zookeeper
            zookeeper
            ${zk.version}
            
                
                    org.slf4j
                    slf4j-log4j12
                
                
                    log4j
                    log4j
                
            
        
        
            com.github.sgroschupf
            zkclient
            ${zkclient.version}
        
    


    
        
            org.springframework.boot
            spring-boot-maven-plugin
        
    

**2.2 子模块pom配置** 1、继承设置 子模块的parent要使用顶层的父模块. 2、依赖设置 父模块pom中使用dependencyManagement来管理的依赖,在子模块pom中就不需要再写版本号了,exclusion元素也不需要再写 **接下来配制springboot-dubbo-server的pom.xml** 4.0.0 com.kuiniu springboot-dubbo-server 0.0.1-SNAPSHOT jar
springboot-dubbo-server
Demo project for Spring Boot


    com.kuiniu
    springboot-dubbo-parent
    0.0.1-SNAPSHOT






    
        org.springframework.boot
        spring-boot-starter
    

    
        org.springframework.boot
        spring-boot-starter-test
        test
    
    
    
        com.alibaba
        dubbo
    
    
        org.apache.zookeeper
        zookeeper
    
    
        com.github.sgroschupf
        zkclient
    
    
        com.kuiniu
        springboot-dubbo-api
        0.0.1-SNAPSHOT
    
    
        org.mybatis.spring.boot
        mybatis-spring-boot-starter
        1.3.1
    
    
    
        mysql
        mysql-connector-java
        8.0.13
    




    
        
            org.springframework.boot
            spring-boot-maven-plugin
        
    

**配制springboot-dubbo-client的pom.xml** 4.0.0
com.kuiniu
springboot-dubbo-client
0.0.1-SNAPSHOT
jar

springboot-dubbo-client
Demo project for Spring Boot


    com.kuiniu
    springboot-dubbo-parent
    0.0.1-SNAPSHOT






    
        org.springframework.boot
        spring-boot-starter
    

    
        org.springframework.boot
        spring-boot-starter-test
        test
    

    
        org.springframework.boot
        spring-boot-starter-web
    

    
    
        com.alibaba
        dubbo
    
    
        org.apache.zookeeper
        zookeeper
    
    
        com.github.sgroschupf
        zkclient
    
    
        com.kuiniu
        springboot-dubbo-api
        0.0.1-SNAPSHOT
    
    



    
        
            org.springframework.boot
            spring-boot-maven-plugin
        
    

**3 测试** 点开右侧Maven Projects,双击父模块Lifecycle中的compile,进行代码编译,或者直接在Terminal中执行命令:mvn compile。

Springboot+dubbo+maven构建多模块项目(一)_第11张图片
到这里,Spring Boot多模块项目创建与配置就介绍完啦。三克油!

你可能感兴趣的:(java技术)