為什么要使用maven模塊?
視頻鏈接:https://v.qq.com/x/page/k0539b44w0s.html
ppt鏈接:https://ptteng.github.io/PPT/PPT-java/Java_task02_MavenModule.html
隨著技術(shù)的飛速發(fā)展和各類用戶對(duì)軟件的要求越來(lái)越高,軟件本身也變得越來(lái)越復(fù)雜,然后軟件設(shè)計(jì)人員開(kāi)始采用各種方式進(jìn)行開(kāi)發(fā),于是就有了我們的分層架構(gòu)、分模塊開(kāi)發(fā),來(lái)提高代碼的清晰和重用。針對(duì)于這一特性,maven也給予了相應(yīng)的配置。
我們?cè)陂_(kāi)發(fā)過(guò)程中,創(chuàng)建了2個(gè)以上的模塊,每個(gè)模塊都是一個(gè)獨(dú)立的maven project,在開(kāi)始的時(shí)候我們可以獨(dú)立的編譯和測(cè)試運(yùn)行每個(gè)模塊,但是隨著項(xiàng)目的不斷變大和復(fù)雜化,我們期望能夠使用簡(jiǎn)單的操作來(lái)完成編譯等工作,這時(shí)Maven給出了聚合的配置方式。
所謂聚合,顧名思義,就是把多個(gè)模塊或項(xiàng)目聚合到一起,我們可以建立一個(gè)專門負(fù)責(zé)聚合工作的Maven project 。
需要注意的幾點(diǎn):
1.父項(xiàng)目打包方式必須為pom
2.聚合模塊的版本和被聚合模塊版本一致
3.每個(gè)模塊relative path的值都是一個(gè)當(dāng)前POM的相對(duì)目錄
4.聚合模塊的內(nèi)容僅僅是一個(gè)pom.xml文件,它不包含src/main/Java、src/test/java等目錄,因?yàn)樗皇怯脕?lái)幫助其它模塊構(gòu)建的工具,本身并沒(méi)有實(shí)質(zhì)的內(nèi)容。
5.聚合模塊和子模塊的目錄可以是父子結(jié)構(gòu),也可以是平行結(jié)構(gòu),當(dāng)然如果使用平行結(jié)構(gòu),那么聚合模塊的POM也需要做出相應(yīng)的更改。
那么,如何通過(guò)父項(xiàng)目統(tǒng)一管理依賴?
1.這時(shí)可使用dependency management在父項(xiàng)目中管理依賴,解決不同模塊間的依賴重復(fù)問(wèn)題。在父項(xiàng)目中聲明dependency management不會(huì)引入直接下載jar包,在子項(xiàng)目pom中聲明才會(huì)引入。
2.相對(duì)于dependencyManagement,所有聲明在dependencies里的依賴都會(huì)自動(dòng)引入,并默認(rèn)被所有的子項(xiàng)目全部繼承。
建議使用dependency management進(jìn)行管理。由于是全部繼承,直接使用dependencies會(huì)在模塊中引入其他模塊的依賴。而且更便于管理。
6.參考文獻(xiàn)
http://blog.csdn.net/wanghantong/article/details/36427411