https://www.cnblogs.com/zy-jiayou/p/7661415.html


Maven常用命令

 

1.1、Maven 參數

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

1.2、maven常用命令

1、mvn clean 
說明: 清理項目生產的臨時文件,一般是模塊下的target目錄

下面來看看目錄:

2、mvn package 
說明: 項目打包工具,會在模塊下的target目錄生成jar或war等文件,如下運行結果。

生成的文件 如下:

3、mvn test 
說明: 測試命令,或執行src/test/java/下junit的測試用例.

 

4、mvn install 
說明: 模塊安裝命令 將打包的的jar/war文件復制到你的本地倉庫中,供其他模塊使用 -Dmaven.test.skip=true 跳過測試(同時會跳過test compile)

第一個紅框是它的輸入路徑,也是本地倉庫的路徑
文件如下 :

5、mvn deploy 

說明: 發布命令 將打包的文件發布到遠程參考,提供其他人員進行下載依賴 ,一般是發布到公司的私服,這里我沒配置私服,所以就不演示了。

 

1.3、maven-eclipse-plugin插件

1、mvn eclipse:eclipse 
說明: 生成eclipse配置文件,導入到eclipse開放,如果是使用m2eclipse插件,則可以不用次命令.直接使用插件導入到eclipse進行開放 

注:通過次命令生產的項目,需要在eclipse中配置M2_HOME的命令,指向你的本地倉庫文件夾.

來看看生成的結果:。classpath就是字節碼

 

2、mvn eclipse:m2eclipse 
生成eclipse配置文件,該配置文件需依賴eclipse 中有m2eclipse 
-DdownloadSources=true 下載依賴包的源碼文件 
-Declipse.addVersionToProjectName=true 添加版本信息到項目名稱中 

3、mvn eclipse:clean 

清除eclipse的項目文件

看看文件內容,沒有project文件 了

1.4、maven-jetty-plugin插件

1、mvn jetty:run 
說明: 可以直接用jetty的服務器運行 注:此命令只適用於war的模塊,即web模塊. 

2、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.5、maven-release-plugin插件

說明: 發行版本,可與scm工具集成,來提供版本管理.不等同與版本控制.允許是必須有goal.兩個常用的goal如下: 
1、mvn release:clean 

清理release操作是遺留下來的文件


2、mvn release:branch 
說明: 創建分支,會在分支下創建執行的分支路徑 
-DbranchName=xxxx-100317 分支中的名稱 
-DupdateBranchVersions=false 是否更新分支的版本信息,默認為false 
-DupdateWorkingCopyVersions=false 是否更新主干的版本信息,默認為true 
3、mvn release:prepare 
創建標記,會有交互過程,提示tag中pom的版本及trunk下的新版本號,每個模塊都會詢問,默認是最小版本號+1 
-Dtag = 4.4.0 將在tags創建該名稱文件夾 
-DdryRun=true 檢查各項設置是否正確,可做測試用,會產生一些修改的配置文件信息. 
命令: 
mvn release:perform 
次命令會自動幫我們簽出剛才打的tag,然后打包,分發到遠程Maven倉庫中 

1.6、Maven站點報表

1、mvn project-info-reports:dependencies

生成項目依賴的報表

2、mvn dependency:resolve 

查看依賴

查看項目依賴情況 
3、mvn dependency:tree 
打印出項目的整個依賴樹 

4、mvn dependency:analyze

幫助你分析依賴關系, 用來取出無用, 重復依賴的好幫手

5、mvn install -X 

追蹤依賴的完整軌跡

6、生命周期 
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倉庫中引用依賴)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM