maven基礎教程

1.創建一個簡單的項目並打包執行

1.1創建一個maven命令

  1. <span style="font-size:14px;">mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch03 -DartifactId=simple -DpackageName=org.sonatype.mavenbook</span>  
會看到生成一個simple項目,目錄格式如下:

  1. <span style="font-size:14px;">simple/   與artifactId匹配的目錄  
  2.     simple/pom.xml 項目對象模型 (POM)描述了這個項目,配置了插件,聲明瞭依賴  
  3.      /src/  
  4.         /src/main/   存放項目的源碼java和資源文件  
  5.                /main/java  
  6.         /src/test/ 測試的java測試類和測試的資源文件  
  7.                 /test/java</span>  

Maven Archtype插件生成了一個簡單的類org.sonatype.mavenbook.App,它是一個僅有13行代碼的Java,所做的只是在main方法中輸出一行消息:

  1. <span style="font-size:14px;">package org.sonatype.mavenbook;  
  2. /** 
  3. * Hello world! 
  4. * 
  5. */  
  6. public class App  
  7. {  
  8.    public static void main( String[] args )  
  9.    {  
  10.       System.out.println( "Hello World!"    );  
  11.    }  
  12. }</span>  
1.2構建與輸出

在simple的項目下包含pom.xml的目錄下運行mvn install。提示build success表示構建成功。

你已經創建了,編譯了,測試了,打包了,並且安裝了(installed)最簡單的Maven項目。在命令行運行它以向你自己驗證這個程序能工作。

  1. <span style="font-size:14px;">$ java -cp target/simple-1.0-SNAPSHOT.jar org.sonatype.mavenbook.App  
  2. Hello World!</span>  
2.依賴包的解釋

  1. <span style="font-size:14px;"><groupId>org.springframework</groupId>  
  2. <artifactId>spring-aop</artifactId>  
  3. <version>3.0.3.RELEASE</version></span>  
groupId
   團體,公司,小組,組織,項目,或者其它團體。團體標識的約定是它以創建這個項目的組織名稱的逆向域名(reverse domain name)開頭。來自spring的項目以org.springframework開頭的groupId,而Apache Software的項目以org.apache開頭的groupId。
artifactId
   在groupId下的表示一個單獨項目的唯一標識符,spring-aop代表了其單獨模塊。
version
   一個項目的特定版本。發佈的項目有一個固定的版本標識來指向該項目的某一個特定的版本。而正在開發中的項目可以用一個特殊的標識,這種標識給版本加上一個“SNAPSHOT”的標記。

3.基本命令

3.1基本命令

1.由於pom可以從超級pom和父類的pom中繼承,依賴傳遞,所以需要查看有效的pom的命令是:mvn help:effective-pom

2. mvn dependency:sources 故名思義,有了它,你就不用到處找源碼了,運行一下,你項目裏所依賴的jar包的源碼就都有了

3.編譯源代碼: mvn compile 
4. 編譯測試代碼:mvn test-compile    
5. 運行測試:mvn test   
6. 產生site:mvn site   
7. 打包:mvn package   
8. 在本地Repository中安裝jar:mvn install 
9. 清除產生的項目:mvn clean   
10. 生成eclipse項目:mvn eclipse:eclipse  
11. 生成idea項目:mvn idea:idea  
12. 組合使用goal命令,如只打包不測試:mvn -Dtest package   
13. 編譯測試的內容:mvn test-compile  
14. 只打jar包: mvn jar:jar  
15. 只測試而不編譯,也不測試編譯:mvn test -skipping compile -skipping test-compile 
      ( -skipping 的靈活運用,當然也可以用於其他組合命令)  
16. 清除eclipse的一些系統設置:mvn eclipse:clean 
17.mvn -e            顯示詳細錯誤 信息. 
18.mvn validate        驗證工程是否正確,所有需要的資源是否可用。 
19.mvn test-compile    編譯項目測試代碼。 。 
20.mvn integration-test     在集成測試可以運行的環境中處理和發佈包。 
21.mvn verify        運行任何檢查,驗證包是否有效且達到質量標準。     
22.mvn generate-sources    產生應用需要的任何額外的源代碼,如xdoclet。 
23.mvn -v 顯示版本 
24.mvn help:describe -Dplugin=help 使用 help 插件的  describe 目標來輸出 Maven Help 插件的信息。 
25.mvn help:describe -Dplugin=help -Dfull 使用Help 插件輸出完整的帶有參數的目標列 
26.mvn help:describe -Dplugin=compiler -Dmojo=compile -Dfull 獲取單個目標的信息,設置mojo參數和plugin 參數。此命令列出了Compiler 插件的compile 目標的所有信息 
27.mvn help:describe -Dplugin=exec -Dfull 列出所有 Maven Exec 插件可用的目標 
28.mvn dependency:resolve 打印出已解決依賴的列表 
29.mvn dependency:tree 打印整個依賴樹 

3.2命令詳解

1. mvn help:describe 你是否因爲記不清某個插件有哪些goal而痛苦過,你是否因爲想不起某個goal有哪些參數而苦惱,那就試試這個命令吧,它會告訴你一切的. 參數: 1. -Dplugin=pluginName 2. -Dgoal(或-Dmojo)=goalName:與-Dplugin一起使用,它會列出某個插件的goal信息,如果嫌不夠詳細,同樣可以加-Ddetail.(注:一個插件goal也被認爲是一個 “Mojo”) 下面大家就運行mvn help:describe -Dplugin=help -Dmojo=describe感受一下吧!


2. mvn archetype:generate 你是怎麼創建你的maven項目的?是不是像這樣:mvn archetype:create -DarchetypeArtifactId=maven-archetype-quickstart -DgroupId=com.ryanote -Dartifact=common,如果你還再用的話,那你就out了,現代人都用mvn archetype:generate了,它將創建項目這件枯燥的事更加人性化,你再也不需要記那麼多的archetypeArtifactId,你只需輸入archetype:generate,剩下的就是做”選擇題”了.


3. mvn tomcat:run 用了maven後,你再也不需要用eclipse裏的tomcat來運行web項目(實際工作中經常會發現用它會出現不同步更新的情況),只需在對應目錄(如/ryanote)裏運行 mvn tomat:run命令,然後就可在瀏覽器裏運行http://localhost:8080/ryanote查看了.如果你想要更多的定製,可以在pom.xml文件里加下面配置: 01 02 03 04 org.codehaus.mojo 05 tomcat-maven-plugin 06 07 /web 08 9090 09 10 11 12 當然你也可以在命令里加參數來實現特定的功能,下面幾個比較常用: 1. 跳過測試:-Dmaven.test.skip(=true) 2. 指定端口:-Dmaven.tomcat.port=9090 3. 忽略測試失敗:-Dmaven.test.failure.ignore=true 當然,如果你的其它關聯項目有過更新的話,一定要在項目根目錄下運行mvn clean install來執行更新,再運行mvn tomcat:run使改動生效.


4. mvnDebug tomcat:run 這條命令主要用來遠程測試,它會監聽遠程測試用的8000端口,在eclipse裏打開遠程測試後,它就會跑起來了,設斷點,調試,一切都是這麼簡單.上面提到的那幾個參數在這裏同樣適用.

4.dependencyManagement和Profile

        Maven 還我們提供了一個dependencyManagement元素,用來提供了一種方式來統一依賴版本號。dependencyManagement元素一 般用在頂層的父POM。使用pom.xml中的dependencyManagement元素能讓你在子項目中引用一個依賴而不用顯式的列出版本號。 Maven會沿着父子層次向上走,直到找到一個擁有dependencyManagement元素的項目,然後它就會使用在這個 dependencyManagement元素中指定的版本號,這樣就解決了修改依賴版本號不完全的問題。

        Maven的Profile元素可以爲一個特殊的環境自定義一個特殊的構建,使得不同環境間構建的可移植性成爲可能。比如要使用 production profile來運行mvn install,你需要在命令行傳入-Pproduction參數,這裏production是profile的id。要驗證production profile覆蓋了默認的Compiler插件配置,可以像這樣以開啓調試輸入(-X) 的方式運行Maven。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章