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

資訊專欄INFORMATION COLUMN

Maven核心概念和日常實踐

894974231 / 3210人閱讀

摘要:項目根目錄項目名項目版本號項目目錄打包的名字二依賴管理概述通過在配置依賴坐標,會自動幫我們下載依賴的構件。關于父模塊的依賴配置注意兩點一般都是通過來配置所有依賴及其版本號,然后子模塊,在自己的文件中聲明依賴即可,不用再指定版本,以確保統(tǒng)一。

一、Maven 1.1 為什么寫Maven

工欲善其事,必先利其器。如今Java相關開發(fā),基本離不開Maven、Gradle、MAT、Hudson之類的玩意,所以把本文當作工具篇吧,后續(xù)有空再整理其他工具。

1.2 概述

Maven是優(yōu)秀的構建工具,但不僅僅是能構建,還有著強大的倉庫管理、項目管理相關的功能。我這介紹這一句話,像詳細了解它的所有描述或者構建工具的介紹,請自行百度谷歌或參考官網(wǎng)。

1.3 安裝

依賴JDK:下載JDK的壓縮包,解壓,配置環(huán)境變量JAVA_HOME=安裝目錄、PATH=$JAVA_HOME/bin:$PATH 即完成。
安裝Maven:同樣下載Maven的壓縮包,解壓,配置MAVEN_HOME=安裝目錄、PATH=$MAVEN_HOME/bin:$PATH 即完成。
檢查JDK : java -version 。 檢查Maven: mvn -version。
安裝后需要了解的是:Maven項目最核心就是pom.xml文件(創(chuàng)建項目后才有),需要在項目中配置的就是配置在pom文件中,還有少數(shù)全局配置是配置在maven安裝目錄中conf下的setting.xml中。

1.4 常用Maven網(wǎng)站

官網(wǎng):https://maven.apache.org/

Maven包查詢:http://mvnrepository.com/ http://search.maven.org/

Maven國內鏡像:http://maven.oschina.net/content/groups/public/

Maven插件查詢:http://maven.apache.org/plugins/

注:國內鏡像也有好些,可以自己找。因為周邊大多數(shù)人都用了開源中國的鏡像,所以我這邊也推薦它。

1.5 創(chuàng)建Maven項目

(1)了解創(chuàng)建符合maven規(guī)范的項目結構,即src/main/java、src/main/resources那套。
(2)創(chuàng)建pom.xml文件。
(3)命令行可以通過Archetype命令生成項目骨架。Eclipse等IDE集成Maven后也可以創(chuàng)建Maven項目(推薦?。?! )。
(4)常用命令

1.6 Pom文件變量屬性

maven定義了很多變量,常見的maven屬性,了解下自己可用,閱讀其他項目的時候可看懂。
${basedir} 項目根目錄
${project.name}項目名
${project.version}項目版本號
${project.groupId}項目groupId
${project.build.directory} target目錄
${project.build.finalName} 打包的名字

二、依賴管理 2.1 概述

通過在pom.xml配置依賴坐標,Maven會自動幫我們下載依賴的構件。
Maven的依賴主要是通過groupId、artifactId和version三者一起來確定一個構件的坐標。

2.2 例子

    
        junit         
        junit   
        4.10          
        test              
                             
                              
           ....
           
        
    

2.3 關于dependencyManagement

這個標簽主要起到依賴統(tǒng)一管理的作用。一般maven開發(fā)多個項目的時候,都會創(chuàng)建一個parent父模塊來配置pom文件統(tǒng)一管理公用的東西,(下面聚合和繼承就是講這部分)。在dependencyManagement下也是通過在dependencies標簽下配置依賴的,但它上面在dependencies標簽配置不同。

不同之處是:在dependencyManagement中配置了,項目并不會直接下載依賴的構件,而是要在子模塊或者當前模塊的dependencies中進行配置,表明當前模塊需要用到的依賴,但此時就不用再指定版本號了。dependencyManagement也是以此來確保各個模塊對相同構件可以用同一版本,也就利于統(tǒng)一升級版本號等等。

 
    
        
            org.springframework
            spring-core
            3.2.5.RELEASE
        
    

    
    
        org.springframework
        spring-core
    
三、倉庫 3.1 本地倉庫

本地倉庫沒啥好說的,在maven安裝目錄下的conf/setting.xml中配置localRepository就可以指定路徑。默認路徑則是在用戶根目錄下的.m2/repository。
作用:maven編譯模塊的時候,依賴的模塊都會按照本地->遠程(一般是私服)->中央的順序依次查找構件。平常開發(fā)的模塊也是通過mvn install安裝到本地倉庫,其他編譯時才能使用;而如果跟其他人合作開發(fā)則要通過deploy發(fā)布到遠程倉庫。發(fā)布后,別人下載依賴也會將通過遠程或者中央倉庫下載來的構件保存到別人的本地倉庫。

D:
epository
3.2 遠程倉庫

一般在項目中,會在標簽下配置遠程倉庫,可以配置多個,但id必須唯一。中央倉庫默認的id為central,可以不用配置;但如果有其他倉庫用這個id,則會覆蓋中央倉庫。(不過,像一般公司都會自己搭建私服,所以也可以把central覆蓋成我們私服的倉庫,我們也這樣做)。
在pom.xml中配置遠程倉庫的例子如下:


     
         repo.springsource.org
         repo.springsource.org-releases
         http://repo.springsource.org/libs-milestone-local
         
             false
         
    
    
        nexus   
        TeamNexusRepository
        http://localhost:8081/nexus/content/groups/public
        
            true
        
        
            false
        
        default
    
    ...

另外還可以指定插件的倉庫:

 
     
        nexus
        TeamNexusRepository
        http://localhost:8081/nexus/content/groups/public 
        
            false
        
    

在pom.xml中配置的遠程倉庫,只會在pom文件對應的模塊有效,即使配置在parent的pom中用來被繼承,那也只是當前項目各個模塊有效。如果多個項目實際上都想用一樣的遠程倉庫(實際場景就是私服),那需要在setting.xml中利用profile來進行配置。
在setting.xml中配置遠程倉庫的例子如下:


    
      nexus
      
        
          central
          http://localhost:8081/nexus/content/groups/public/
        
      
      
        
          central
          http://localhost:8081/nexus/content/groups/public/
        
      
    


 
    nexus
3.3 倉庫鏡像

除了以上配置之外,我們還可以在setting.xml里面配置倉庫的鏡像,一般用于當訪問某個倉庫的時候,可能由于網(wǎng)絡不同或者其他原因需要轉換到另外一個地址,這個時候就可以配置這個倉庫的鏡像。例如你想覆蓋中央倉庫的默認地址,可以在setting.xml里面這樣配置:

     
          
       maven-net-cn     
       MavenChinaMirror     
       http://maven.net.cn/content/groups/public/     
       central     
          
     

這里通過標簽指定為central倉庫做鏡像,就是訪問central的url不再是國外那個地址,而會被轉為我們配置的鏡像地址http://maven.net.cn/content/groups/public/ (也可以配置為私服地址等等), 而如果想為所有的倉庫做鏡像那么可以改為 *
在我的項目中,由于一般會把central設置為我們的私服倉庫,所以大部分情況下也就不用配置鏡像了。如果確實有多個倉庫的話,那確實可以用*的方式指向私服。

3.4 發(fā)布到倉庫

    
        nexus
        releases
        http://localhost:8081/nexus/content/groups/public/
    
    
        nexus
        snapshots
        http://localhost:8081/nexus/content/groups/public/
    
四、插件 4.1 概述 4.2 生命周期 4.3 常見插件 4.4 例子 4.5 關于pluginManagement

這個標簽跟dependencyManagement標簽一樣,也是為了起到統(tǒng)一管理的作用,只是它統(tǒng)一管理了插件。跟依賴管理一樣,一般也會在parent父模塊來配置pom來配置pluginManagement,統(tǒng)一描述好插件之后,在子模塊中就不用完整的配置插件已經(jīng)綁定的生命周期和執(zhí)行目標等等,只需要指定插件的groupId 和 artifactId就可以完成插件的引用。下面給出例子。
父模塊(parent模塊)的pom.xml中配置:


    
        
           
              org.apache.maven.plugins
              maven-source-plugin
              2.4
              
                
                    package
                    
                        jar-no-fork
                    
                
              
            
          
    
    

其他子模塊需要多帶帶引用插件的,可以在pom.xml中配置:


    
       
          org.apache.maven.plugins
          maven-source-plugin
       
    
五、聚合和繼承 5.1 繼承

先說繼承吧,其實繼承就是為了抽出相同的東西,然后給項目的其他模塊一起共用,而不用每個模塊的pom.xml文件都寫很多重復的東西。如果光說重復的工作量也就算了,有個重點是類似spring-core這種多個模塊都可能用到的依賴,如果每個模塊都自己配置自己的依賴和版本好,那很容易就會犯錯或者依賴的版本不一致導致錯誤等等。因此,在拆分多模塊開發(fā)的時候,盡量考慮使用繼承。

如何使用Maven繼承呢?
(1)建立一個文件夾,只創(chuàng)建一個pom.xml文件即可。
(2)然后把各個模塊通用的東西寫到這個pom.xml中,如屬性定義,工廠定義,依賴坐標定義等等。
(3)把這個pom.xml中的的值設置為pom。
(4)在各個子模塊中使用標簽指明自己使用的父項目。

關于父模塊的依賴配置注意兩點:
(1)一般都是通過來配置所有依賴及其版本號,然后子模塊,在自己的pom文件中聲明依賴即可,不用再指定版本,以確保統(tǒng)一。
(2)父項目中什么時候直接配置呢?就是確定每個子模塊基本都會用的依賴,統(tǒng)一配置,不用每個子模塊再多帶帶去配的,比如junit、log4j這種。

5.2 聚合

聚合的作用在于可以把一個項目的多個模塊一起配置,這樣可以一次性編譯、安裝和發(fā)布多個模塊。
一般項目都會把聚合和繼承都會放到同一個pom.xml文件進行管理。

如何使用Maven聚合呢?
(1)建立一個文件夾,只創(chuàng)建一個pom.xml文件。
(2)然后在這個pom.xml文件中,把這個pom.xml中的的值設置為pom和配置標簽即可。

如果其他模塊跟父pom.xml是同一層的話,如下圖:

則模塊的配置方式為:


    hello-world
    hello-spring
六、插件開發(fā)

待更新

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

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

相關文章

  • 參考 - 收藏集 - 掘金

    摘要:譯年你不能錯過的類庫后端掘金各位讀者好,這篇文章是在我看過的一篇介紹文后,整理出來的。上線后平穩(wěn)運行我的后端書架后端掘金我的后端書架月前本書架主要針對后端開發(fā)與架構。 【譯】2017 年你不能錯過的 Java 類庫 - 后端 - 掘金各位讀者好, 這篇文章是在我看過 Andres Almiray 的一篇介紹文后,整理出來的。 因為內容非常好,我便將它整理成參考列表分享給大家, 同時附上...

    feng409 評論0 收藏0
  • 給Java新手的一些建議——Java知識點歸納(Java基礎部分)

    摘要:中很多特性或者說知識點都是和面向對象編程概念相關的。在多線程中內容有很多,只是簡單說明一下中初步使用多線程需要掌握的知識點,以后有機會單獨再詳細介紹一些高級特性的使用場景。   寫這篇文章的目的是想總結一下自己這么多年來使用java的一些心得體會,主要是和一些java基礎知識點相關的,所以也希望能分享給剛剛入門的Java程序員和打算入Java開發(fā)這個行當?shù)臏市率謧儯M梢越o大家一些經(jīng)...

    lykops 評論0 收藏0
  • Maven學習筆記

    摘要:學習筆記先生,您在寫代碼嗎不,我們正在完成一項偉大的工程。于是打算重新學習一下。中央倉庫鏡像為了分擔中央倉庫的流量,提升用戶的訪問速度。生成項目報告,站點,發(fā)布站點。修改源碼后也需要逐個手動進行操作。 maven學習筆記 先生,您在寫代碼嗎? 不,我們正在完成一項偉大的工程。 前言 在剛學maven時,我就把maven當作一個引入jar包的工具而已,以前是自己下載jar包,現(xiàn)在是只用...

    tomlingtm 評論0 收藏0
  • 工具集核心教程 | 第二篇: IDEA入門到進階(圖文并茂)

    摘要:重度強迫癥患者取消大小寫敏感,讓自動完成更齊全。如何為當前項目工程添加多個模塊啊答對著工程右鍵選擇通常選擇,如圖寫在最后歡迎關注喜歡和點贊后續(xù)將推出更多的工具集教程,敬請期待。公眾號回復面試,領取面試實戰(zhàn)學習資源。 showImg(https://segmentfault.com/img/remote/1460000018862588); 前言:IntelliJ IDEA 如果說Int...

    skinner 評論0 收藏0

發(fā)表評論

0條評論

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