Spring Cloud 多模塊相互依賴打包問題解決

2019-10-23日更新,另一種方法,請看完之后再做選擇.

最近在學(xué)習(xí)spring cloud的時(shí)候,發(fā)現(xiàn)一個(gè)問題,就是在模塊打包的時(shí)候,有一個(gè)依賴公共模塊的部分,總是在打包的時(shí)候提示找不到公共模塊的依賴,導(dǎo)致打包出錯(cuò),下面是模塊結(jié)構(gòu).


WeChat Screenshot_20190610145243.png

首先發(fā)現(xiàn)是因?yàn)樽约旱哪K中pom的<parent>有問題,因?yàn)閯?chuàng)建的時(shí)候沒有選擇其父依賴,導(dǎo)致各個(gè)模塊之間各管各的,所以進(jìn)行修改,將各模塊<parent>標(biāo)簽修改為其父工程的pom.


pom.png

修改好之后發(fā)現(xiàn)打包還是有問題,于是繼續(xù)查找,直到谷歌發(fā)現(xiàn),一個(gè)方法就是在公共模塊中maven-plugs中加入<configuration>標(biāo)簽,

 <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!--被依賴的公共模塊必須加上這個(gè),打包之后啟動(dòng),選擇后面帶EXE的啟動(dòng),依賴該模塊的其他模塊就不會因?yàn)檎也坏揭蕾嚩虬鲥e(cuò)-->
                    <classifier>exe</classifier>
                </configuration>
            </plugin>
        </plugins>
    </build>

打包之后發(fā)現(xiàn)jar包有了新文件名,


jar.png

然后再對依賴該模塊的模塊進(jìn)行打包,就不會再有問題了, 記住打包的時(shí)候要在idea->maven,使用最外層的pom.xml打包,

另一種方法

那么問題來了,這樣打包并不是最好的方法,建議使用下面的方法

  • 將模塊的main方法和配置文件刪除,在resource目錄下新建META-INF, 然后在該目錄下新建spring.factories

  • 加入配置


    導(dǎo)入方式.png
  • 修改pom


    pom.png
  • 最后整個(gè)模塊的目錄就是下面的


    目錄結(jié)構(gòu).png

其實(shí)看spring源碼的時(shí)候就可以知道他會默認(rèn)掃描resource目錄下的META-INF/spring.factories,倒入配置
, 當(dāng)然引用該模塊的方法還是不變

總結(jié)

打包應(yīng)該還有其他的方法,是我不知道的,歡迎各位大佬指點(diǎn)問題

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容