国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

IDEA多module項目maven依賴的一些說明

pkwenda / 1374人閱讀

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

不管eclipse有沒有被被時代拋棄,反正是被我拋棄了,因為IDEA是真的好用

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

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

jar

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

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

這樣在 File -> project structure 下,選中主web項目

從上面的截圖可以看出來依賴的第三方jar和依賴項目子module的區別。

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

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

關于Maven pom.xml中的元素modules、parent、properties以及import

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

modules

在父pom.xml中通過

  
    
      mall-common
      mall-api-model
  

來引用所有需要構建的子模塊

parent

繼承,和java中的繼承相當,作用就是復用

場景

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

實現

父(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
    
  

依賴管理

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

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71838.html

相關文章

  • IntelliJ Idea 創建maven模塊項目

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

    ?xiaoxiao, 評論0 收藏0
  • [轉載]使用IntelliJ IDEA開發SpringMVC網站(一)開發環境

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

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

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

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

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

    whatsns 評論0 收藏0
  • 開發利器之IntelliJ IDEA學習筆記

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

    馬永翠 評論0 收藏0

發表評論

0條評論

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