關於Maven的好的資料:html
Apache官網:http://maven.apache.org/java
Apache Maven 入門篇 ( 上 ):http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-1-406235-zhs.htmlapache
Apache Maven 入門篇 ( 下 ):http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-2-405568-zhs.htmloracle
Maven教程:http://www.yiibai.com/maven/maven_environment_setup.htmlapp
孔浩Maven視頻教程:http://www.icoolxue.com/album/show/45yii
1.在Eclipse中右鍵,New->Maven Project,一路Next,而後輸入項目信息:maven
Group Id:com.maven.demo測試
Artifact Id:mavenDemoui
Version:選擇」0.0.1-SNAPSHOT「就好編碼
package:這一欄會自動填充爲 Group Id.Artifact Id的形式。不用管。
點擊Finish以後,項目新建完成。其中 「src/main/java」目錄包含了項目的源代碼,"src/test/java"目錄包含了項目的測試代碼,pom.xml是項目的項目對象模型。
目錄 | 文件 |
/ | 存放pom.xml和全部子目錄 |
/src/main/java | 項目的源代碼 |
/src/main/resource | 項目須要用到的資源 |
/src/test/java | 項目的測試源代碼 |
/src/test/resource | 測試須要用到的資源 |
/target | 編譯產生的文件 |
2.Maven採用了一種被稱爲project object model(POM)的概念來管理項目,全部的項目配置信息都被定義在一個叫作pom.xml的文件中。經過該文件,maven能夠管理項目的整個生命周 期,包括編譯、構建、測試、發佈、報告等等。咱們打開pom.xml文件,會看到裏面的內容以下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.maven.demo</groupId> <artifactId>mavenDemo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>mavenDemo</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
<project>:全部pom.xml文件中的頂層元素,申明瞭一些POM相關的命名空間以及xsd元素,用來約束maven的寫法。
<modelVersion>:指POM使用的對象模型的版本。這個值不多改動,對於Maven2及Maven3來講,只能是4.0.0。
<groupId>:該值來源於咱們建立項目時輸入的」Group Id"。指明建立項目的組織或者小組的惟一標識。groupId是項目的關鍵標識,此標識以組織的徹底限定名來定義。比 如,org.apache.maven.plugins是全部Maven插件項目指定的groupId。
<artifactId>:該值來源於咱們建立項目時輸入的「Artifact Id"。指明此項目產生的主要產品的基本名稱。項目的主要產品一般爲一個JAR文件。第二,源代碼包一般使用artifactId做爲最後名稱的一部分。 典型的產品名稱使用這個格式: <artifactId>- <version>. <extension>(好比:myapp-1.0.jar)。
<version>:該值來源於咱們建立項目時選擇的」Version「。表示項目產品的版本號。Maven幫助你管理版本,能夠常常看到SNAPSHOT這個版本,意思是快照,代表項目處於開發階段,是不穩定的版本。
<packaging>:指項目產生的主要產品的格式。
在POM中,groupId,artifactId,packaging,version叫作maven的座標,它能惟一的肯定一個項目。有了maven的座標,咱們也能夠用來指定咱們的項目所依賴的其餘項目,插件,或者父項目。通常maven座標寫成以下的格式:
groupId:artifactId:packaging:version
像咱們的例子就會寫成:
com.mycompany.helloworld: helloworld: jar: 1.0-SNAPSHOT
咱們的Maven示例很簡單,可是大項目通常會分紅幾個子項目。在這種狀況下,每一個子項目就會有本身的 POM 文件,而後它們會有一個共同的父項目。這樣只要構建父項目就可以構建全部的子項目了。子項目的 POM 會繼承父項目的 POM。另外,全部的 POM都繼承了一個 Super-POM。Super-POM 設置了一些默認值,好比默認的目錄結構,默認的插件等等,它遵循了慣例優於配置的原則。因此儘管咱們的這個 POM 很簡單,可是這只是看得見的一部分。運行時候的 POM 要複雜的多。 若是想看到運行時候的 POM 的所有內容的話,能夠運行下面的命令:
$mvn help:effective-pom
<name>:項目的顯示名稱,一般用於maven產生的文檔中。值默認爲 artifactId。
<url>:指定項目站點,一般用於maven產生的文檔中。
<properties>:項目的」Properties"。對應於在項目上右鍵->"Properties"。裏面能夠配置項目採用的編碼方式等等。
<dependencies>:指項目的依賴。一般由不少的<dependency>組成,這裏默認只有「junit-3.8.1"。
<dependency>:一個依賴單元。意思是本項目須要依賴一個」groupId和 artifactId爲junit,而且version爲3.8.1「的另一個項目,其實就是」junit-3.8.1.jar"包。實際使用中,若是 咱們須要某個jar包,就會添加一個<dependency>單元,而後更新項目以後maven就會自動幫助咱們下載咱們須要的jar包。
下面咱們經過更改pom.xml的方式來下載項目須要的包。
更改pom.xml,添加 junit4.8和testng依賴,也就是:
<dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.1.1</version> <scope>test</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.2</version> </dependency>
3.更新項目。在項目上右鍵,選擇 Maven->「Update Project"。更待更新完畢,能夠看到項目結構多了一個」Maven Dependencies"庫。打開庫便可看到咱們新添加的junit 和testng包。