2019-10-23日更新,另一種方法,請看完之后再做選擇.
最近在學(xué)習(xí)spring cloud的時(shí)候,發(fā)現(xiàn)一個(gè)問題,就是在模塊打包的時(shí)候,有一個(gè)依賴公共模塊的部分,總是在打包的時(shí)候提示找不到公共模塊的依賴,導(dǎo)致打包出錯(cuò),下面是模塊結(jié)構(gòu).

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

修改好之后發(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包有了新文件名,

然后再對依賴該模塊的模塊進(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)問題


