Spring Cloud 多模块相互依赖打包问题解决

2019-10-23日更新,另一种方法,请看完之后再做选择.

最近在学习spring cloud的时候,发现一个问题,就是在模块打包的时候,有一个依赖公共模块的部分,总是在打包的时候提示找不到公共模块的依赖,导致打包出错,下面是模块结构.


WeChat Screenshot_20190610145243.png

首先发现是因为自己的模块中pom的有问题,因为创建的时候没有选择其父依赖,导致各个模块之间各管各的,所以进行修改,将各模块标签修改为其父工程的pom.


pom.png

修改好之后发现打包还是有问题,于是继续查找,直到谷歌发现,一个方法就是在公共模块中maven-plugs中加入标签,

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

打包之后发现jar包有了新文件名,


jar.png

然后再对依赖该模块的模块进行打包,就不会再有问题了, 记住打包的时候要在idea->maven,使用最外层的pom.xml打包,

另一种方法

那么问题来了,这样打包并不是最好的方法,建议使用下面的方法

  • 将模块的main方法和配置文件删除,在resource目录下新建META-INF, 然后在该目录下新建spring.factories

  • 加入配置


    导入方式.png
  • 修改pom


    pom.png
  • 最后整个模块的目录就是下面的


    目录结构.png

其实看spring源码的时候就可以知道他会默认扫描resource目录下的META-INF/spring.factories,倒入配置
, 当然引用该模块的方法还是不变

总结

打包应该还有其他的方法,是我不知道的,欢迎各位大佬指点问题

你可能感兴趣的:(Spring Cloud 多模块相互依赖打包问题解决)