微服务下 Spring Boot Maven 工程依赖关系管理

单体 Spring Boot Maven 工程

最基本的 pom.xml 包含工程信息、Spring Boot 父工程、属性配置、依赖包、构建插件



    4.0.0
    
    
    com.anoyi
    demo
    1.0-SNAPSHOT

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

    
        
    

    
        
    

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


微服务多 Spring Boot 应用依赖关系管理

  • 蓝色:仅 pom.xml 文件,无代码
  • 黄色:包含 pom.xml 文件,一些具有通用性的代码,如工具类等
  • 绿色:Spring Boot 应用工程,含有启动类,与上述单体应用类似

蓝色:自定义 Parent

为避免微服务下包的滥用,应该统一管理第三方依赖的版本,同时为了方便 mvn deploy 操作,可以加上公司内部 Maven 私服的信息。



    4.0.0

    
    com.anoyi
    parent
    1.0.0.RELEASE
    pom

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

    
        
        1.0.0.RELEASE
    

    
        
            
            
                com.anoyi
                common
                ${common.version}
            
        
    

    
    
        
            central
            *****
            *****
        
    



常用操作

# 安装到本地、推送到 Maven 私服
mvn clean install deploy

黄色:自定义依赖

比如一些通用的工具类包,为了避免代码在不用项目的复制,可以制作成一个 Maven 模块打包,用于其他项目引用。如果这个工具包还依赖了一些其他包,可以在上述 Parent 中统一管理这些包的版本。



    4.0.0

    com.anoyi
    common
    1.0.0.RELEASE
    jar

    
        com.anoyi
        parent
        1.0.0.RELEASE
    

    
    
         
    

    
    

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

        
        
            com.alibaba
            fastjson
        
      
        

    



常用操作

# 安装到本地、推送到 Maven 私服
mvn clean install deploy

构建出来的 jar 包中仅包含编译后的 class 文件及依赖关系,非常轻量!

绿色:Spring Boot Application

最终的目标是构建出可运行的 jar 包,就需要打包所有依赖的代码文件到一起,使用 Spring Boot Maven 插件就能轻易完成。



    4.0.0

    com.anoyi
    server-general
    1.0-SNAPSHOT

    
    
        com.anoyi
        parent
        1.0.0.RELEASE
    

    
        
        
        
            com.anoyi
            common
        

    

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



常用操作

# 构建可执行 jar 包到 target 目录
mvn clean package

业务代码复用

解耦业务,合理拆分微服务模块,使用 RPC 框架,能有效的复用代码。

轻量级微服务架构,容器化环境,PRC 框架可以使用 spring-boot-starter-grpc

你可能感兴趣的:(微服务下 Spring Boot Maven 工程依赖关系管理)