Maven學習(十五)-----Maven經常使用命令

1、Maven經常使用命令

1.一、Maven 參數

-D 傳入屬性參數 
-P 使用pom中指定的配置 
-e 顯示maven運行出錯的信息 
-o 離線執行命令,即不去遠程倉庫更新包 
-X 顯示maven容許的debug信息 
-U 強制去遠程參考更新snapshot包 
例如 mvn install -Dmaven.test.skip=true -Poracle 
其餘參數能夠經過mvn help 獲取

java

1.二、maven經常使用命令

一、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

說明: 發佈命令 將打包的文件發佈到遠程參考,提供其餘人員進行下載依賴 ,通常是發佈到公司的私服,這裏我沒配置私服,因此就不演示了。工具


1.三、maven-eclipse-plugin插件

一、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文件 了


1.四、maven-jetty-plugin插件

一、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
提示確認,回車便可

1.五、maven-release-plugin插件

說明: 發行版本,可與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倉庫中 

1.六、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包

2、各類範圍

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倉庫中引用依賴)。

相關文章
相關標籤/搜索