清理 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 將中止處理並拋出錯誤(沒法找到依賴的文件)