標籤:style http os io 使用 java ar strong for
George Ma
寫這個 maven 的入門篇是因為之前在一個開發人員會的動手實驗中發現挺多人對於 maven 不是那麼瞭解,所以就有了這個想法。
這個入門篇分上下兩篇。本文著重動手,用 maven 來構建運行 hellow world 程式,體會一下不用任何 IDE ,只用 maven 是咋回事。然後下篇就講解一下 maven 的核心概念。寫這兩篇文章特意迴避了複雜的樣本,也不使用 IDE ,目的是排除幹擾,著重於 maven 本身。
本文的原始碼可從這裡下載。
Apache Maven 是做什麼用的?
Maven 是一個專案管理和構建自動化工具。但是對於我們程式員來說,我們最關心的是它的項目構建功能。所以這裡我們介紹的就是怎樣用 maven 來滿足我們項目的日常需要。
Maven 使用慣例優於配置的原則 。它要求在沒有定製之前,所有的項目都有如下的結構:
|
目錄 |
目的 |
|
${basedir} |
存放 pom.xml和所有的子目錄 |
|
${basedir}/src/main/java |
項目的 java原始碼 |
|
${basedir}/src/main/resources |
項目的資源,比如說 property檔案 |
|
${basedir}/src/test/java |
項目的測試類別,比如說 JUnit代碼 |
|
${basedir}/src/test/resources |
測試使用的資源 |
一個 maven 項目在預設情況下會產生 JAR 檔案,另外 ,編譯後 的 classes 會放在 ${basedir}/target/classes 下面, JAR 檔案會放在 ${basedir}/target 下面。
這時有人會說了 , Ant 就沒有那麼多要求 ,它允許你可以自由的定義項目的結構。在這裡不想引起口水戰哈, 我個人覺得 maven 的這些預設定義很方便使用。
好了 ,接下來我們來安裝 maven 。
Maven 的安裝
在安裝 maven 前,先保證你安裝了 JDK 。 JDK 6 可以從 Oracle 技術網上下載:
http://www.oracle.com/technetwork/cn/java/javase/downloads/index.html。
Maven 官網的下載連結是 : http://maven.apache.org/download.html 。
該頁的最後給出了安裝指南。
安裝完成後,在命令列運行下面的命令:
$ mvn -v
Apache Maven 3.0.3 (r1075438; 2011-03-01 01:31:09+0800)
Maven home: /home/limin/bin/maven3
Java version: 1.6.0_24, vendor: Sun Microsystems Inc.
Java home: /home/limin/bin/jdk1.6.0_24/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "2.6.35-28-generic-pae", arch: "i386", family: "unix"
如果你看到類似上面的輸出的話,就說明安裝成功了。
接下來我們用 maven 來建立最著名的“Hello World!”程式 :)
注意:如果你是第一次運行 maven,你需要 網際網路連線,因為 maven 需要從網上下載需要的外掛程式。
我們要做的第一步是建立一個 maven 項目。在 maven 中,我們是執行 maven 目標 (goal) 來做事情的。
maven 目標和 ant 的 target 差不多。在命令列中執行下面的命令來建立我們的 hello world 項目
~$mvn archetype:generate -DgroupId=com.mycompany.helloworld -DartifactId=helloworld -Dpackage=com.mycompany.helloworld -Dversion=1.0-SNAPSHOT
archetype:generate 目標會列出一系列的 archetype 讓你選擇。 Archetype 可以理解成項目的模型。 Maven 為我們提供了很多種的項目模型,包括從簡單的 Swing 到複雜的 Web 應用程式。我們選擇預設的 maven-archetype-quickstart ,是編號 #106 ,如所示:
連打兩個斷行符號,這時候讓你確定項目屬性的配置,
這些屬性是我們在命令列中用 -D 選項指定的。該選項使用 -Dname=value 的格式。斷行符號確認,就完成了項目的建立,如所示:
這時候我們看一下 maven 給我們建立的檔案目錄結構:
maven 的 archetype 外掛程式建立了一個 helloworld 目錄,這個名字來自 artifactId 。在這個目錄下面,有一個 Project Object Model(POM) 檔案 pom.xml 。這個檔案用於描述項目,配置外掛程式和管理依賴關係。
原始碼和資源檔放在 src/main 下面,而測試代碼和資源放在 src/test 下面。
Maven 已經為我們建立了一個 App.java 檔案:
Java代碼
package com.mycompany.helloworld; /** * Hello world! * */ public class App { public static void main( String[] args ) { System.out.println( "Hello World!" ); } }
正是我們需要的 Hello World 代碼。所以我們可以構建和運行這個程式了。用下面簡單的命令構建:
~$cd helloworld
~$mvn package
當你第一次運行 maven 的時候,它會從網上的 maven 庫 (repository) 下載需要的程式,存放在你電腦的本地庫 (local repository) 中,所以這個時候你需要有 網際網路連線。Maven 預設的本地庫是 ~/.m2/repository/ ,在 Windows 下是 %USER_HOME%\.m2\repository\ 。
如果構建沒有錯誤的話,就會得到類似下面的結果:
這個時候, maven 在 helloworld 下面建立了一個新的目錄 target/ ,構建打包後的 jar 檔案 helloworld-1.0-SNAPSHOT.jar 就存放在這個目錄下。編譯後的 class 檔案放在 target/classes/ 目錄下面,測試 class 檔案放在 target/test-classes/ 目錄下面。
為了驗證我們的程式能運行,執行下面的命令:
~$java -cp target/helloworld-1.0-SNAPSHOT.jar com.mycompany.helloworld.App
運行成功!!
現在你可能會有不少的問題。所以下一篇文章會解釋 maven 的核心概念,希望能回答你可能會有的一些疑問。
http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-1-406235-zhs.html
【Tools】Apache Maven 入門篇 ( 上 )