美文网首页JAVAjava
Spring Cloud 多模块相互依赖打包问题解决

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

作者: singlezero | 来源:发表于2019-06-10 15:05 被阅读0次

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

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


    WeChat Screenshot_20190610145243.png

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


    pom.png

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

     <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <configuration>
                        <!--被依赖的公共模块必须加上这个,打包之后启动,选择后面带EXE的启动,依赖该模块的其他模块就不会因为找不到依赖而打包出错-->
                        <classifier>exe</classifier>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    

    打包之后发现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 多模块相互依赖打包问题解决

        本文链接:https://www.haomeiwen.com/subject/ydezxctx.html