在Eclipse中新建Maven專案

微微微笑發表於2015-07-11

關於Maven的好的資料:

Apache官網:http://maven.apache.org/

Apache Maven 入門篇 ( 上 ):http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-1-406235-zhs.html

Apache Maven 入門篇 ( 下 ):http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-2-405568-zhs.html

Maven教程:http://www.yiibai.com/maven/maven_environment_setup.html

孔浩Maven視訊教程:http://www.icoolxue.com/album/show/45


1.在Eclipse中右鍵,New->Maven Project,一路Next,然後輸入專案資訊:

Group Id:com.maven.demo

Artifact Id:mavenDemo

Version:選擇”0.0.1-SNAPSHOT“就好

package:這一欄會自動填充為 Group Id.Artifact Id的形式。不用管。

點選Finish之後,專案新建完成。其中 “src/main/java”目錄包含了專案的原始碼,"src/test/java"目錄包含了專案的測試程式碼,pom.xml是專案的專案物件模型。

https://i.iter01.com/images/3e6733ca01b8f3928e62578a69149f591858702f75d909b8da693be2155a2744.png

目錄 檔案
/ 存放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包。

相關文章