Maven經常使用命令

清理
    mvn clean

編譯
    mvn compile

測試
    mvn test

打包
    mvn package

在本地Repository中安裝jar
    mvn install

只打jar包
    mvn jar:jar

上傳到私服
    mvn deploy

給任何目標添加maven.test.skip 屬性就能跳過測試
    mvn install -Dmaven.test.skip=true
    
顯示版本
    mvn -version/-v

在jetty、tomcat上運行
    mvn jetty:run
    mvn tomcat:run

    跳過測試:-Dmaven.test.skip(=true)
    指定端口:-Dmaven.tomcat.port=9090
    忽略測試失敗:-Dmaven.test.failure.ignore=true

下載依賴的源碼
    mvn dependency:sources

顯示詳細錯誤
    mvn -e    

驗證工程是否正確,全部須要的資源是否可用
    mvn validate

運行任何檢查,驗證包是否有效且達到質量標準
    mvn verify

maven的生命週期
    validate,驗證工程是否正確,全部須要的資源是否可用。
    compile,編譯項目的源代碼。
    test-compile,編譯項目測試代碼。
    test,使用已編譯的測試代碼,測試已編譯的源代碼。
    package,已發佈的格式,如jar,將已編譯的源代碼打包。
    integration-test,在集成測試能夠運行的環境中處理和發佈包。
    verify,運行任何檢查,驗證包是否有效且達到質量標準。
    install,把包安裝在本地的repository中,能夠被其餘工程做爲依賴來使用
    deploy,在整合或者發佈環境下執行,將最終版本的包拷貝到遠程的repository,使得其餘的開發者或者工程能夠共享。
    generate-sources,產生應用須要的任何額外的源代碼,如xdoclet。

依賴管理
    這種情形常常可見,當一個庫 A 依賴於其餘庫 B. 另外一工程 C 想要使用庫 A, 那麼該工程一樣也須要使用到庫 B。
    Maven 能夠避免去搜索全部須要的庫資源的這種需求。經過讀取工程文件(pom.xml)中的依賴項,Maven 能夠找出工程之間的依賴關係。
    咱們只須要在每一個工程的 pom 文件裏去定義直接的依賴關係。Maven 則會自動的來接管後續的工做。
    經過傳遞依賴,全部被包含的庫的圖形可能會快速的增加。當重複的庫存在時,可能出現的情形將會持續上升。Maven 提供一些功能來控制可傳遞的依賴的程度。
    功能描述
        依賴調節   決定當多個手動建立的版本同時出現時,哪一個依賴版本將會被使用。 若是兩個依賴版本在依賴樹裏的深度是同樣的時候,第一個被聲明的依賴將會被使用。
        依賴管理   直接的指定手動建立的某個版本被使用。例如當一個工程 C 在本身的以來管理模塊包含工程 B,即 B 依賴於 A, 那麼 A 便可指定在 B 被引用時所使用的版本。
        依賴範圍   包含在構建過程每一個階段的依賴。
        依賴排除   任何可傳遞的依賴均可以經過 "exclusion" 元素被排除在外。舉例說明,A 依賴 B, B 依賴 C,所以 A 能夠標記 C 爲 「被排除的」。
        依賴可選   任何可傳遞的依賴能夠被標記爲可選的,經過使用 "optional" 元素。例如:A 依賴 B, B 依賴 C。所以,B 能夠標記 C 爲可選的, 這樣 A 就能夠再也不使用 C。
        依賴範圍

本地倉庫
    當你運行一次 Maven 構建,Maven 會自動下載全部依賴的 jar 文件到本地倉庫中。它避免了每次構建時都引用存放在遠程機器上的依賴文件
中央倉庫
    Maven 中央倉庫是由 Maven 社區提供的倉庫,其中包含了大量經常使用的庫。
    中央倉庫的關鍵概念:
    這個倉庫由 Maven 社區管理。
    不須要配置。
    須要經過網絡才能訪問。
遠程倉庫
    若是 Maven 在中央倉庫中也找不到依賴的庫文件,它會中止構建過程並輸出錯誤信息到控制檯。
    爲避免這種狀況,Maven 提供了遠程倉庫的概念,它是開發人員本身定製倉庫,包含了所須要的代碼庫或者其餘工程中用到的 jar 文件

Maven 依賴搜索順序
    當咱們執行 Maven 構建命令時,Maven 開始按照如下順序查找依賴的庫:
    步驟 1 - 在本地倉庫中搜索,若是找不到,執行步驟 2,若是找到了則執行其餘操做。
    步驟 2 - 在中央倉庫中搜索,若是找不到,而且有一個或多個遠程倉庫已經設置,則執行步驟 4,若是找到了則下載到本地倉庫中已被未來引用
    步驟 3 - 若是遠程倉庫沒有被設置,Maven 將簡單的停滯處理並拋出錯誤(沒法找到依賴的文件)。
    步驟 4 - 在一個或多個遠程倉庫中搜索依賴的文件,若是找到則下載到本地倉庫已被未來引用,不然 Maven 將中止處理並拋出錯誤(沒法找到依賴的文件)
相關文章
相關標籤/搜索