成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

IDEA多module項(xiàng)目maven依賴的一些說明

pkwenda / 1386人閱讀

摘要:如果子模塊不聲明依賴的使用,即使該依賴在父中的中聲明了,也不會產(chǎn)生任何效果。

不管eclipse有沒有被被時代拋棄,反正是被我拋棄了,因?yàn)镮DEA是真的好用

現(xiàn)在公司的項(xiàng)目基本都是基于maven的多module項(xiàng)目,controller,service,model,dao等都被分成了不同的module,這樣做當(dāng)然也是為了解耦。

這些module可根據(jù)需要在pom.xml配置來打成war包或者jar包

jar

web主項(xiàng)目設(shè)置packaging級別為war,dao、model這些module設(shè)置packaging級別為jar。
module之間可以通過module自己的pom.xml來進(jìn)行相互引用或依賴,如:

        
            cn.com.autohome.mall
            mall-common
        
        
            cn.com.autohome.mall
            mall-api-model
        

這樣在 File -> project structure 下,選中主web項(xiàng)目

從上面的截圖可以看出來依賴的第三方j(luò)ar和依賴項(xiàng)目子module的區(qū)別。

maven在執(zhí)行install,packaging是jar的會被打成jar放在target目錄下,packaging是war的會被打成war放在target目錄下。
另外兩個target目錄會有一點(diǎn)區(qū)別,war的target目錄會多出來一個和module同名的文件夾,這個文件夾和war解壓后完全一致。

所有依賴的jar(包括依賴的module,被打成jar)都會被放lib下
這樣在部署的時候,只需要部署相應(yīng)的war即可。

關(guān)于Maven pom.xml中的元素modules、parent、properties以及import

多個module不需要分別執(zhí)行mvn命令,可以使用聚合(aggregator)來一次構(gòu)建全部模塊

modules

在父pom.xml中通過

  
    
      mall-common
      mall-api-model
  

來引用所有需要構(gòu)建的子模塊

parent

繼承,和java中的繼承相當(dāng),作用就是復(fù)用

場景

若每個子模塊都都用的了spring,那么我們是不是每個子模塊都需要多帶帶配置spring依賴了?這么做是可以的,但是我們有更優(yōu)的做法,那就是繼承,用parent來實(shí)現(xiàn)。

實(shí)現(xiàn)

父(account-aggregator)pom.xml

 
      
    mall-common
    mall-api-model
  
  
  
    
      
        org.springframework
        spring-core
        4.0.2.RELEASE
    
     ······
    
    
      junit
      junit
      4.7
      test
    
  

子pom.xml


    xx.xx.xx
    aggregator
    1.0.0-SNAPSHOT
    ../pom.xml 


     
    
      javax.mail
      mail
      1.4.3
    
    
      com.icegreen
      greenmail
      1.4.1
      test
    
  

依賴管理

繼承可以消除重復(fù),那是不是就沒有問題了? 答案是存在問題,假設(shè)將來需要添加一個新的子模塊util,只是提供一些簡單的幫助工具,不需要依賴spring、junit,那么繼承后就依賴上了,有沒有什么辦法了?
有,maven已經(jīng)替我們想到了,那就是dependencyManagement元素,既能讓子模塊繼承到父模塊的依賴配置,又能保證子模塊依賴使用的靈活性。在dependencyManagement元素下得依賴聲明不會引入實(shí)際的依賴,不過它能夠約束dependencies下的依賴使用。

在父pom.xml中配置dependencyManagement元素


      
    mall-common
    mall-api-model
  
  
  
       
      
      
        org.springframework
        spring-core
        4.0.2.RELEASE
    
    ······
  
  

子pom.xml


    
    
        org.springframework
        spring-core
    
      
        org.springframework
        spring-beans
    
    
        org.springframework
        spring-context
    
    
        org.springframework
        spring-context-support
    
    
      
    
      junit
      junit
    
    
        org.springframework
        spring-jdbc
        4.0.2.RELEASE
    
    
        com.alibaba
        druid
        1.0.16
    
  

使用這種依賴管理機(jī)制似乎不能減少太多的POM配置,就少了version(junit還少了個scope),感覺沒啥作用呀;其實(shí)作用還是挺大的,父POM使用dependencyManagement能夠統(tǒng)一項(xiàng)目范圍中依賴的版本,當(dāng)依賴版本在父POM中聲明后,子模塊在使用依賴的時候就無須聲明版本,也就不會發(fā)生多個子模塊使用版本不一致的情況,幫助降低依賴沖突的幾率。如果子模塊不聲明依賴的使用,即使該依賴在父POM中的dependencyManagement中聲明了,也不會產(chǎn)生任何效果。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/71838.html

相關(guān)文章

  • IntelliJ Idea 創(chuàng)建maven模塊項(xiàng)目

    摘要:創(chuàng)建項(xiàng)目點(diǎn)擊創(chuàng)建項(xiàng)目,點(diǎn)擊下一步填寫組名項(xiàng)目項(xiàng)目版本填寫本地項(xiàng)目和目錄名稱,點(diǎn)擊創(chuàng)建好的項(xiàng)目目錄結(jié)構(gòu)如下一般多模塊開發(fā)中父模塊都是不帶目錄的,手動刪除目錄,刪除之后的目錄如下至此父模塊已經(jīng)創(chuàng)建完成。 公司的項(xiàng)目使用idea進(jìn)行maven的多模塊開發(fā),由于接觸intellij Idea沒有多長時間,對好多功能都不太清楚,就在網(wǎng)上瀏覽帖子學(xué)習(xí),在此過程中總感覺帖子寫的不夠詳細(xì),在途中踩了很...

    ?xiaoxiao, 評論0 收藏0
  • [轉(zhuǎn)載]使用IntelliJ IDEA開發(fā)SpringMVC網(wǎng)站(一)開發(fā)環(huán)境

    摘要:最近在做某在線教育平臺網(wǎng)站的開發(fā),按師兄的建議要用來搞。現(xiàn)在把開發(fā)過程中的一些相關(guān)經(jīng)驗(yàn)貼出來。事先聲明,請確保和都已經(jīng)安裝好。對于不使用的開發(fā)者,可以直接建一個簡單的項(xiàng)目。使用的話,請按照圖進(jìn)行操作。 訪問GitHub下載最新源碼:https://github.com/gaussic/Sp... 文章已針對IDEA 2016做了一定的更新,部分更新較為重要,請重新閱讀文章并下載最新源碼...

    Ali_ 評論0 收藏0
  • 使用IDEA基于Maven搭建模塊聚合工程(springmvc+spring+mybatis整合)

    摘要:最后運(yùn)行,如下圖所示,就說明跑通了總結(jié)之前看別人的博客,有選擇項(xiàng),自己弄死活跑不通。選擇那項(xiàng),啥都不選選擇那項(xiàng)。還要注意打包方式,,, 一.工程目錄 下面是搭建之后的目錄showImg(https://segmentfault.com/img/remote/1460000015755454?w=407&h=467); 先看一下目錄關(guān)系 taotao-parent(父工程管理jar包的版...

    szysky 評論0 收藏0
  • Maven 搭建spring boot模塊項(xiàng)目(附源碼)

    摘要:搭建多模塊項(xiàng)目備注所有項(xiàng)目都在中創(chuàng)建創(chuàng)建項(xiàng)目刪除目錄,只保留根目錄可被子模塊繼承因此項(xiàng)目只是未考慮太多性能問題所以將諸多依賴都寫在根級,子模塊只需繼承就可以使用。 Maven 搭建spring boot多模塊項(xiàng)目 備注:所有項(xiàng)目都在idea中創(chuàng)建 1.idea創(chuàng)建maven項(xiàng)目 1-1: 刪除src,target目錄,只保留pom.xml 1-2: 根目錄pom.xml可被子...

    whatsns 評論0 收藏0
  • 開發(fā)利器之IntelliJ IDEA學(xué)習(xí)筆記

    摘要:旨在記錄自己的學(xué)習(xí)過程,方便日后遇到問題是及時查閱復(fù)習(xí),另一方面也希望能幫助像筆者一樣從來沒使用過的人快速熟悉。 這篇文章主要記錄的是本人學(xué)習(xí)使用IntelliJ IDEA的筆記,可能不是特別的詳細(xì)。旨在記錄自己的學(xué)習(xí)過程,方便日后遇到問題是及時查閱復(fù)習(xí),另一方面也希望能幫助像筆者一樣從來沒使用過IDEA的人快速熟悉IDEA。文章錯誤之處還請各位大佬批評指正。(文末有本人的微信公眾號,...

    馬永翠 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<