1. 程式人生 > >Maven那點事兒(Eclipse版)

Maven那點事兒(Eclipse版)

前言:

  由於最近工作學習,總是能碰到Maven的原始碼。雖然平時工作並不使用Maven,但是為了學習一些原始碼,還是必須要了解下。這篇文章不是一個全面的Maven解析,而是一個簡單的介紹,包括Eclipse中如何使用Maven,如何利用Maven工程學習。

  循序漸進,你將會學到下面的知識:

  maven的相關書籍!

  什麼是maven?

  如何在eclipse中使用maven?

  maven的工程是什麼樣子?

  Eclipse中maven的常用命令!

  相關書籍

  首先推薦兩本書,都是網上找的pdf。由於我自己沒有工作需求,因此也只是簡單的瞭解一下而已,並沒有深入的研究。有興趣的朋友,可以多看看這兩本書。

Maven權威指南

Maven實戰

  什麼是maven?

  Maven是一個用於專案構建的工具,通過它便捷的管理專案的生命週期。即專案的jar包依賴,開發,測試,釋出打包

  下面我自己總結一下它的幾個特點,看了這些特點,也許對maven有更多的瞭解。

  1 jar包依賴

  這個也許會maven最突出的特點了使用maven不需要上網單獨下載jar包,只需要在配置檔案pom.xml中配置jar包的依賴關係,就可以自動的下載jar包到我們的專案中。這樣,別人開發或者使用這個工程時,不需要來回的拷貝jar包,只需要複製這個pom.xml就可以自動的下載這些jar包。

  而且,我們自己下載jar包,還有可能造成版本的不一致,這樣在協同開發的過程中就有可能造成程式碼執行的不一致。通過使用maven精確的匹配jar包,就不會出現這種問題了。

  2 專案座標

  Maven通過特定的標識來定義專案名稱,這樣既可以唯一的匹配其他的jar包,也可以通過釋出,使別人能使用自己的釋出產品。這個標識就被叫做座標,長的其實很普通,就是簡單的xml而已:

複製程式碼
1   <groupId>com.test</groupId>
2   <artifactId>maventest</artifactId
> 3 <version>0.0.1-SNAPSHOT</version> 4 <packaging>jar</packaging> 5 6 <name>maventest</name> 7 <url>http://maven.apache.org</url>
複製程式碼

  groupId:所述的專案名稱,由於有的專案並不是一個jar包構成的,而是由很多的jar包組成的。因此這個groupId就是整個專案的名稱。

  artifactId:包的名稱。

  version:版本號。

  packaging:包的型別,一般都是jar,也可以是war之類的。如果不填,預設就是jar。

  nameurl,一個是名稱,一個是maven的地址。主要就是上面的幾個引數。

  當想要依賴什麼jar的時候就可以通過下面的方式依賴:

複製程式碼
1 <dependencies>
2     <dependency>
3       <groupId>junit</groupId>
4       <artifactId>junit</artifactId>
5       <version>3.8.1</version>
6       <scope>test</scope>
7     </dependency>
8   </dependencies>
複製程式碼

  各個屬性的內容基本上都是一樣的。

  這裡要注意的是jar包的命名規則:

  artifactId-version[-classifier].packaging

  比如上面的pom.xml生成的jar包名字就是:maventest-0.0.1-SNAPSHOT.jar

  這裡的classifier是可選的,但是有的專案可能還需要匯出附屬的一些檔案,如javadoc,source等等,那麼這個地方就需要配置一個字串。一般都是JDKXXX之類的。

  3 測試驅動

  Maven是測試驅動的開發思路,因此工程建立初期,就包含兩個資料夾,main和test。一個用於放置開發的java檔案,一個用於寫test單元測試。這樣每次開發的時候,提前設計單元測試,就能幫助減少BUG。

  如何在eclipse中使用maven

  我使用的eclipse有自帶的maven外掛,因此直接建立就可以了。這裡就不介紹如何安裝maven了。下面介紹一下maven工程的建立:

  1 如何建立maven工程:

  直接點選新建,在裡面可以找到Maven選項卡,點選Maven Project建立Maven工程

  2 選擇預設的工程位置

  3 建立工程,紅色是建立普通的maven工程的。粉色是建立web工程的。

  6 填寫相關的groupId artifactId version等資訊

  點選完成就建立好了一個簡單的maven工程。

  maven工程是什麼樣子的?

  maven的工程一般都是如下的結構:

複製程式碼
first_maven  
|-- pom.xml  
`-- src  
    |-- main  
    |   |-- java  
    |   |   `-- com  
    |   |       `-- test  
    |   |           `-- App.java  
    |   `-- resources  
    |       `-- META-INF  
    |           `-- application.properties  
    `-- test  
        `-- java  
            `-- com  
                `-- test  
                    `-- AppTest.java  
複製程式碼

  pom.xml:用於定義或者新增jar包的依賴

  src-main:用於存放java原始檔

  src-test:用於存放測試用例。

  也許工程下還會出現target資料夾,這個是用來生成對應的class檔案或釋出的jar包

  Eclipse中maven常用的命令

  點選Run As就可以發現幾個Maven的命令:

  Maven Build:

  這個命令用於編譯Maven工程,執行命令後會在target資料夾中的classes中生成對應的class檔案。

  Maven Clean:

  刪除target資料夾,即刪除生成的package包以及class等檔案。

  Maven Test:

  先自動進行編譯,在執行所有的測試用例。

  Maven install:

  釋出生成對應的package包。

 

  注意:

  留意上面的命令的作用,build和test都會生成相應的class檔案。也就是說,當你新建一個maven工程,或者clean一個maven工程後,如果沒有使用這兩個命令,直接針對類進行測試,會跑出java.class.notfound的錯誤。因為此時還沒有編譯生成class檔案,如果有朋友發現這個問題注意一下就好了。(該部分只針對舊版本,新版本如maven3.3是可以自動編譯的)

  只有使用了上面的兩個命令後,才能針對某個類進行單元測試。

作者:xingoo 
Github: https://github.com/xinghalo
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。原文連結:http://www.cnblogs.com/xing901022/p/4170248.html