-D 傳入屬性參數
-P 使用pom中指定的配置
-e 顯示maven運行出錯的信息
-o 離線執行命令,即不去遠程倉庫更新包
-X 顯示maven容許的debug信息
-U 強制去遠程參考更新snapshot包
例如 mvn install -Dmaven.test.skip=true -Poracle
其餘參數能夠經過mvn help 獲取
java
一、mvn clean
說明: 清理項目生產的臨時文件,通常是模塊下的target目錄web
二、mvn package
說明: 項目打包工具,會在模塊下的target目錄生成jar或war等文件,以下運行結果。
服務器
生成的文件 以下:oracle
三、mvn test
說明: 測試命令,或執行src/test/java/下junit的測試用例.eclipse
四、mvn install
說明: 模塊安裝命令 將打包的的jar/war文件複製到你的本地倉庫中,供其餘模塊使用 -Dmaven.test.skip=true 跳過測試(同時會跳過test compile)maven
五、mvn deploy
ide
說明: 發佈命令 將打包的文件發佈到遠程參考,提供其餘人員進行下載依賴 ,通常是發佈到公司的私服,這裏我沒配置私服,因此就不演示了。工具
一、mvn eclipse:eclipse
說明: 生成eclipse配置文件,導入到eclipse開放,若是是使用m2eclipse插件,則能夠不用次命令.直接使用插件導入到eclipse進行開放
測試
注:經過次命令生產的項目,須要在eclipse中配置M2_HOME的命令,指向你的本地倉庫文件夾.ui
來看看生成的結果:。classpath就是字節碼
二、mvn eclipse:m2eclipse
生成eclipse配置文件,該配置文件需依賴eclipse 中有m2eclipse
-DdownloadSources=true 下載依賴包的源碼文件
-Declipse.addVersionToProjectName=true 添加版本信息到項目名稱中
三、mvn eclipse:clean
清除eclipse的項目文件
看看文件內容,沒有project文件 了
一、mvn jetty:run
說明: 能夠直接用jetty的服務器運行 注:此命令只適用於war的模塊,即web模塊.
二、mvn archetype:generate
說明: 模塊建立命令, 執行命令後,會提示選擇建立項目的模版,這裏選18(maven-archetype-quickstart)
後面會提示你輸入groupId(包存放的路徑):
eg:com.lin
提示輸入artifactId(模塊名稱):
eg:test-core
提示輸入version(版本):
1.0.0-SNAPSHOT
提示輸入package(指項目中基本的包路徑):
eg:com.lin
提示確認,回車便可
說明: 發行版本,可與scm工具集成,來提供版本管理.不等同與版本控制.容許是必須有goal.兩個經常使用的goal以下:
一、mvn release:clean
清理release操做是遺留下來的文件
二、mvn release:branch
說明: 建立分支,會在分支下建立執行的分支路徑
-DbranchName=xxxx-100317 分支中的名稱
-DupdateBranchVersions=false 是否更新分支的版本信息,默認爲false
-DupdateWorkingCopyVersions=false 是否更新主幹的版本信息,默認爲true
三、mvn release:prepare
建立標記,會有交互過程,提示tag中pom的版本及trunk下的新版本號,每一個模塊都會詢問,默認是最小版本號+1
-Dtag = 4.4.0 將在tags建立該名稱文件夾
-DdryRun=true 檢查各項設置是否正確,可作測試用,會產生一些修改的配置文件信息.
命令:
mvn release:perform
次命令會自動幫咱們簽出剛纔打的tag,而後打包,分發到遠程Maven倉庫中
一、mvn project-info-reports:dependencies
生成項目依賴的報表
二、mvn dependency:resolve
查看依賴
查看項目依賴狀況
三、mvn dependency:tree
打印出項目的整個依賴樹
四、mvn dependency:analyze
幫助你分析依賴關係, 用來取出無用, 重複依賴的好幫手
五、mvn install -X
追蹤依賴的完整軌跡
六、生命週期
resource->compile->process-classes->process-test-resources->test-compile->test->prepare-package->package
resources:resources 綁定在resource處理階段, 用來將src/main/resources下或者任何指定其餘目錄下的文件copy到輸出目錄中
resources:testResources 將test下的resources目錄或者任何指定其餘目錄copy到test輸出目錄下
compiler:testCompile 將測試類編譯(包括copy資源文件)
surefire:test 運行測試用例
jar:jar 打jar包
compile(編譯範圍) compile是默認的範圍;若是沒有提供一個範圍,那該依賴的範圍就是編譯範圍。編譯範圍依賴在全部的classpath中可用,同時它們也會被打包。 provided(已提供範圍) provided依賴只有在當JDK或者一個容器已提供該依賴以後才使用。例如,若是你開發了一個web應用,你可能在編譯classpath中須要可用的Servlet API來編譯一個servlet,可是你不會想要在打包好的WAR中包含這個Servlet API;這個Servlet API JAR由你的應用服務器或者servlet容器提供。已提供範圍的依賴在編譯classpath(不是運行時)可用。它們不是傳遞性的,也不會被打包。 runtime(運行時範圍) runtime依賴在運行和測試系統的時候須要,但在編譯的時候不須要。好比,你可能在編譯的時候只須要JDBC API JAR,而只有在運行的時候才須要JDBC驅動實現。 test(測試範圍) test範圍依賴 在通常的 編譯和運行時都不須要,它們只有在測試編譯和測試運行階段可用。 system(系統範圍) system範圍依賴與provided相似,可是你必須顯式的提供一個對於本地系統中JAR文件的路徑。這麼作是爲了容許基於本地對象編譯,而這些對象是系統類庫的一部分。這樣的構件應該是一直可用的,Maven也不會在倉庫中去尋找它。。若是你將一個依賴範圍設置成系統範圍,你必須同時提供一個systemPath元素。注意該範圍是不推薦使用的(你應該一直儘可能去從公共或定製的Maven倉庫中引用依賴)。