標籤:style blog http ar io color 使用 sp java
前言:
由於最近工作學習,總是能碰到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。
name和url,一個是名稱,一個是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檔案。
只有使用了上面的兩個命令後,才能針對某個類進行單元測試。
Maven那點事兒(Eclipse版)