Maven多模塊項(xiàng)目結(jié)構(gòu)依賴和搭建

簡介

Maven多模塊項(xiàng)目,適用于一些比較大的項(xiàng)目,通過合理的模塊拆分哭懈,實(shí)現(xiàn)代碼的復(fù)用灾馒,便于維護(hù)和管理。尤其是一些開源框架遣总,也是采用多模塊的方式睬罗,提供插件集成,用戶可以根據(jù)需要配置指定的模塊旭斥。

簡單多模塊搭建
多模塊項(xiàng)目說簡單點(diǎn)可以理解為項(xiàng)目間的繼承容达。首先搭建一個(gè)簡單的多模塊項(xiàng)目結(jié)構(gòu),我用的idea創(chuàng)建項(xiàng)目垂券。既然是繼承我們先創(chuàng)建整個(gè)項(xiàng)目結(jié)構(gòu)的父項(xiàng)目花盐,創(chuàng)建的過程注意一點(diǎn),因?yàn)槭褂玫氖莍dea所以父項(xiàng)目創(chuàng)建為project菇爪。因?yàn)槭歉疙?xiàng)目所以src等文件夾都可以刪掉了 看起來項(xiàng)目更干凈一些算芯,我們只需要父項(xiàng)目的pom文件來進(jìn)行依賴配置。父項(xiàng)目pom文件如下:

    <groupId>com.xs.personal</groupId>
    <artifactId>loginServer</artifactId>
    <packaging>pom</packaging>
    <version>1.0.1</version>
    <name>loginServer</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring.version>4.2.5.RELEASE</spring.version>
        <login.version>1.0.1</login.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-websocket</artifactId>
                <version>${spring.version}</version>
            </dependency>
            .......................
      </dependencies>
    </dependencyManagement>

注意父項(xiàng)目的打包方式配置成pom方式凳宙。maven打包方式配置為pom打包就是什么都不會(huì)生成熙揍。
dependencyManagement 配置用來配置聲明子項(xiàng)目可能用到的依賴 如果子項(xiàng)目用到了某個(gè)依賴可以不需要配置版本號(hào) 而使用父項(xiàng)目聲明好的 方便各個(gè)子項(xiàng)目的依賴管理。當(dāng)然如果子項(xiàng)目配置了版本號(hào)則會(huì)使用子項(xiàng)目配置的版本號(hào)氏涩。
父項(xiàng)目創(chuàng)建好了 届囚,接下來創(chuàng)建子項(xiàng)目。在剛剛建立的父項(xiàng)目上創(chuàng)建module是尖。我創(chuàng)建了三個(gè)module意系,創(chuàng)建完后如下:


創(chuàng)建完會(huì)發(fā)現(xiàn)父項(xiàng)目的pom文件中多出了部分配置

<modules>
        <module>loginServer-web</module>
        <module>loginServer-api</module>
        <module>loginServer-mapper</module>
        <module>loginServer-service</module>
    </modules>

這樣簡單的父子項(xiàng)目結(jié)構(gòu)就建好了,但是只有結(jié)構(gòu)是不夠的饺汹,各個(gè)項(xiàng)目間還需要建立依賴互相調(diào)用蛔添。首先在父項(xiàng)目pom文件中加入這些依賴

<dependencyManagement>
        <dependencies>
            <!--子項(xiàng)目依賴-->
            <dependency>
                <groupId>com.xs.personal</groupId>
                <artifactId>loginServer-web</artifactId>
                <version>${login.version}</version>
            </dependency>
            <dependency>
                <groupId>com.xs.personal</groupId>
                <artifactId>loginServer-api</artifactId>
                <version>${login.version}</version>
            </dependency>
            <dependency>
                <groupId>com.xs.personal</groupId>
                <artifactId>loginServer-service</artifactId>
                <version>${login.version}</version>
            </dependency>
            <dependency>
                <groupId>com.xs.personal</groupId>
                <artifactId>loginServer-mapper</artifactId>
                <version>${login.version}</version>
            </dependency>
        </dependencies>
  </dependencyManagement>

在子項(xiàng)目的依賴只需要使用父項(xiàng)目聲明的依賴就可以了,比如web子項(xiàng)目需要依賴service子項(xiàng)目只需要在web子項(xiàng)目的pom文件加入如下依賴就可以了:

<dependency>
        <groupId>com.xs.personal</groupId>
        <artifactId>loginServer-service</artifactId>
</dependency>

這樣整個(gè)簡單多模塊項(xiàng)目結(jié)構(gòu)就搭建和依賴好了首繁。

實(shí)際項(xiàng)目完整版多模塊項(xiàng)目結(jié)構(gòu)依賴

在實(shí)際項(xiàng)目中作郭,只是簡單的多項(xiàng)目依賴并不能滿足工作需要弦疮,比如我上面建立的登錄模塊現(xiàn)在用dubbo做分布式服務(wù),我要新建立一個(gè)提供登錄服務(wù)的項(xiàng)目胁塞⊙褂铮可能還需要兩個(gè)項(xiàng)目不在一臺(tái)服務(wù)器。實(shí)際項(xiàng)目中這樣不同的項(xiàng)目可能會(huì)有10幾個(gè)编检。辦法當(dāng)然是有的胎食。
創(chuàng)建多個(gè)簡單多模塊結(jié)構(gòu)每個(gè)結(jié)構(gòu)中的父項(xiàng)目可能是登錄模塊項(xiàng)目,登錄服務(wù)項(xiàng)目等等允懂。接下來我們再單獨(dú)創(chuàng)建一個(gè)父項(xiàng)目作為所有結(jié)構(gòu)中的爺爺項(xiàng)目,這樣每組子項(xiàng)目依賴父項(xiàng)目粥航,所有父項(xiàng)目依賴爺爺項(xiàng)目,這樣不同的模塊就依賴起來了生百。
但是跨服務(wù)器的問題怎么解決呢递雀。創(chuàng)建完?duì)敔旐?xiàng)目后我們install這個(gè)爺爺項(xiàng)目,就像下圖一樣:



然后到我們的maven本地倉庫中就可以找到爺爺項(xiàng)目依賴包了蚀浆,文件目錄是groupId+artifactId+版本號(hào)然后我們可以看到下圖的文件:


這就是最關(guān)鍵的文件了 接下來把這個(gè)文件傳到maven服務(wù)器上,各個(gè)父項(xiàng)目只需要在pom中j加入下面的配置就可以像依賴jar包一樣依賴這個(gè)爺爺項(xiàng)目了市俊,這樣整個(gè)完整的多項(xiàng)目模塊就創(chuàng)建依賴好了。

<parent>
        <artifactId>loginServer</artifactId>
        <groupId>com.xs.personal</groupId>
        <version>1.0.1</version>
    </parent>

轉(zhuǎn)載自:https://blog.csdn.net/xs925048899/article/details/79748707

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蠢甲,一起剝皮案震驚了整個(gè)濱河市据忘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌勇吊,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件汉规,死亡現(xiàn)場離奇詭異驹吮,居然都是意外死亡针史,警方通過查閱死者的電腦和手機(jī)碟狞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來频祝,“玉大人泌参,你說我怎么就攤上這事常空。” “怎么了漓糙?”我有些...
    開封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵昆禽,是天一觀的道長攘残。 經(jīng)常有香客問我为狸,道長歼郭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任病曾,我火速辦了婚禮漾根,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘辐怕。我一直安慰自己,他們只是感情好寄疏,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著陕截,像睡著了一般。 火紅的嫁衣襯著肌膚如雪农曲。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天形葬,我揣著相機(jī)與錄音暮的,去河邊找鬼笙以。 笑死青扔,一個(gè)胖子當(dāng)著我的面吹牛翩伪,可吹牛的內(nèi)容都是我干的谈息。 我是一名探鬼主播缘屹,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼轻姿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了互亮?” 一聲冷哼從身側(cè)響起余素,我...
    開封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎桨吊,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體视乐,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年留美,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了伸刃。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡棺榔,死狀恐怖瓶堕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情郎笆,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布激捏,位于F島的核電站凄吏,受9級(jí)特大地震影響远舅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜图柏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望例诀。 院中可真熱鬧裁着,春花似錦繁涂、人聲如沸二驰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至坏瘩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間倔矾,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來泰國打工哪自, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留禁熏,地道東北人壤巷。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓胧华,卻偏偏與公主長得像,于是被迫代替她去往敵國和親矩动。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355