zoukankan      html  css  js  c++  java
  • SpringBoot多Module情况下,本地可以运行,Linux环境上没有其他Module代码的情况

    问题描述

      用SpringCloud构建的微服务中,会把不同业务拆分成不同的微服务以便解耦:

      

       我按照业务拆分了三个业务微服务crawler,user,driftbook 两个公共模块common,util 一个SpringCloud模块

      三个微服务独立运行独立部署没问题,但我现在为了节省资源,代码可以分module去写,但打包的时候只想部署到一个服务上,就新创建了一个parent

      

      本地启动parent可以访问到其他module的接口,打包部署到linux上,发现访问不到其他模块的代码。

    问题排查

      1.访问不到接口,代码没有更新:重新clean部署了好几遍还是不行,排除。

          2.因为项目用了swagger本地启动后可以扫描到接口,linux上扫描不到其他module的接口,看看是不是包扫描的问题:

      重试了好几次,还是不行。

       3.进一步定位问题,现在已经确定是代码没有到linux上,再看看是不是maven打包的时候没有把其他module打包进去:

       把这个jar包解压之后发现lib包中没有我pom中引入的那几个模块的jar包

      4.现在可以确定问题是由于maven打包的时候没有把本地引入的依赖包给添加进来

    问题解决

      在查看jar包里面的lib包时发现包里面有公共包common和util包,那就看看pom是怎么把这两个包给加进去的 

      

      是的通过 dependencyManagement把这两个包给引入的

      那么同样的我只需要把crawler,user,driftbook模块引入就好

      

      重新打包后再去查看jar包中的lib包,就有这几个模块了,再部署到linux上就可以访问到了。

    深度思考

      那么这个dependencyManagement起到了什么作用?

      

  • 相关阅读:
    sql语句开发使用---update
    获取弹出框的句柄,关闭弹出框
    水晶报表使用,解决相同数据库不同服务器使用同一个水晶报表模板问题?
    第一章 什么是SQL Server Integration Services (ssis) 系统。
    在 win 10 中使用sql 2012 附加低版本数据失败的解决办法。
    窗体间传值 委托应用
    有点小激动
    Adam
    SVN Unable to connect to a repository at URL问题解决
    C#基础---IComparable用法,实现List<T>.sort()排序
  • 原文地址:https://www.cnblogs.com/pangyangqi/p/14683947.html
Copyright © 2011-2022 走看看