Maven 建立父子项目和跨项目调用内容的步骤
使用Maven管理項(xiàng)目,同時(shí)我們是做微服務(wù),所以對(duì)于微服務(wù)項(xiàng)目來(lái)說(shuō),使用Maven建立起一個(gè)父子項(xiàng)目這種關(guān)系,很方便管理(只是個(gè)人感覺(jué))
設(shè)計(jì)層面
(1)服務(wù)端和客戶端肯定是分開寫的,另外還有一個(gè)公共的項(xiàng)目,比如一些實(shí)體類等都是可以作為公共的類放到這個(gè)公共的項(xiàng)目。
(2)這樣來(lái)說(shuō),子項(xiàng)目至少有三個(gè),server(服務(wù)層子項(xiàng)目)、web(視圖層子項(xiàng)目)、common(公共層子項(xiàng)目)。這可不是定義哈,是我自己起的。
(3)父項(xiàng)目可以命名為parent,這樣就構(gòu)成了一個(gè)父子項(xiàng)目的概念。下面開始建立。
補(bǔ)充注意:這幾天把一個(gè)小項(xiàng)目建好,交給領(lǐng)導(dǎo),領(lǐng)導(dǎo)說(shuō)我設(shè)計(jì)錯(cuò)誤,將來(lái)會(huì)有上百個(gè)微服務(wù)項(xiàng)目,common如果作為單個(gè)的微服務(wù)的公共層,未免有點(diǎn)浪費(fèi),領(lǐng)導(dǎo)說(shuō)應(yīng)該是放所有微服務(wù)子項(xiàng)目共有的東西,具體我也不懂,所以在這里誤解大家了,抱歉,但是建立父子項(xiàng)目的方法還是這樣的,但是微服務(wù)項(xiàng)目設(shè)計(jì)不是這樣的,可以參照!!!
創(chuàng)建父項(xiàng)目
? (1)下邊這張圖是父子項(xiàng)目建立的不同之處,父項(xiàng)目建立是建Maven project,即項(xiàng)目。子項(xiàng)目建立的是Module,即模塊。如下:
?
? (2)選擇Maven project開始建立父項(xiàng)目。如下圖,選擇create a simple project,原因父項(xiàng)目需要建立的packaging為POM,子項(xiàng)目建立的packaging為jar或者war,勾選此處,在下一步中可以選擇packaging:
(3)再次提醒,父項(xiàng)目的packaging選擇POM,子項(xiàng)目選擇Jar或者war,順便說(shuō)一句,一般來(lái)說(shuō),要?jiǎng)?chuàng)建在tomcat里運(yùn)行的項(xiàng)目,應(yīng)該是要?jiǎng)?chuàng)建war,比如本文說(shuō)的service子項(xiàng)目和web子項(xiàng)目,應(yīng)該是創(chuàng)建成war,但是有例外是,如果要?jiǎng)?chuàng)建spring boot微服務(wù)項(xiàng)目,因?yàn)閟pring boot采用的都是富jar形式,就需要所有的子項(xiàng)目都為jar,這僅僅是個(gè)人理解,具體按照自己的需求建立。
?
? (4)如果不小心將父項(xiàng)目的packaging建立成不是POM的,可以打開項(xiàng)目的pom.xml文件,進(jìn)行修改。如下:
?
(5)修改完保存后,項(xiàng)目會(huì)報(bào)錯(cuò),直接項(xiàng)目右擊選擇Maven------->update project即可。
創(chuàng)建子項(xiàng)目
(1)子項(xiàng)目的創(chuàng)建必須選擇maven module,同時(shí)在里邊制定父項(xiàng)目就可以了,注意不要忘記,在前邊將父項(xiàng)目的packing由Jar改為POM\,具體創(chuàng)建子項(xiàng)目步驟如下:
****
(2)創(chuàng)建完之后就可以看到如下的內(nèi)容:
(3)同理,將service子項(xiàng)目和web子項(xiàng)目建立完成后,這時(shí)候點(diǎn)擊父項(xiàng)目里的pom.xml,就會(huì)看到如下內(nèi)容:
(4)這樣就完成了父子項(xiàng)目的創(chuàng)建。但是如何進(jìn)行項(xiàng)目與項(xiàng)目之間的關(guān)聯(lián),還要進(jìn)行一些配置。
跨項(xiàng)目訪問(wèn)內(nèi)容
比如本文中的common子項(xiàng)目為公共項(xiàng)目,其中可以將公用的東西,比如實(shí)體類、工具類等存儲(chǔ)到該項(xiàng)目,將來(lái),可以在service子項(xiàng)目和web子項(xiàng)目中直接調(diào)用即可,如果達(dá)到這樣的功能,就需要添加依賴標(biāo)簽。以service子項(xiàng)目調(diào)用common子項(xiàng)目為例,步驟如下:
(1)測(cè)試要求:首先在common子項(xiàng)目中建立一個(gè)Person類,然后在service子項(xiàng)目中建立一個(gè)TestPerson類,在該類中調(diào)用Person類。
? ****
(2)其實(shí)就是要在service子項(xiàng)目中引入common子項(xiàng)目的依賴即可。如下,在service子項(xiàng)目的pom.xml中添加如下內(nèi)容:
?
(3)在service子項(xiàng)目中添加完以上一個(gè)依賴標(biāo)簽,該標(biāo)簽指向common子項(xiàng)目,這樣就相當(dāng)于將common子項(xiàng)目中的內(nèi)容獲取到了,注意寫入以上的內(nèi)容,前提,必須common子項(xiàng)目中有如下內(nèi)容,該內(nèi)容默認(rèn)是存在的,只要不亂刪除,就一直會(huì)有的,否則,就算在service子項(xiàng)目中填上上邊的依賴,也無(wú)法獲取到其中的內(nèi)容。
?
? (4)好了,在service子項(xiàng)目中測(cè)試一番吧,如下:
?
? (5)這樣就完成了項(xiàng)目之間的調(diào)用,將來(lái)就把所有的公共內(nèi)容放到common子項(xiàng)目中,同理web子項(xiàng)目想要引入common子項(xiàng)目也是如此。
(6)除了公用的類,可以公用,也包括jar包,可以在common子項(xiàng)目中導(dǎo)入,這樣service子項(xiàng)目中也可以用到該jar包。
父項(xiàng)目只是充當(dāng)聚合層,不寫任何代碼,父項(xiàng)目只是負(fù)責(zé)管理依賴
總結(jié)
以上是生活随笔為你收集整理的Maven 建立父子项目和跨项目调用内容的步骤的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: wxWidgets随笔(10)-fedo
- 下一篇: HashMap的put方法返回值问题