寫這個 maven 的入門篇是由於以前在一個開發者會的動手實驗中發現挺多人對於 maven 不是那麼瞭解,因此就有了這個想法。
這個入門篇分上下兩篇。本文着重動手,用 maven 來構建運行 hellow world 程序,體會一下不用任何 IDE ,只用 maven 是咋回事。而後下篇就講解一下 maven 的核心概念。寫這兩篇文章特地回避了複雜的示例,也不使用 IDE ,目的是排除干擾,着重於 maven 自己。html
本文的源代碼可從這裏下載。 java
Maven 是一個項目管理和構建自動化工具。可是對於咱們程序員來講,咱們最關心的是它的項目構建功能。因此這裏咱們介紹的就是怎樣用 maven 來知足咱們項目的平常須要。
Maven 使用慣例優於配置的原則 。它要求在沒有定製以前,全部的項目都有以下的結構:
linux
目錄 程序員 |
目的 apache |
${basedir}oracle |
存放 pom.xml和全部的子目錄maven |
${basedir}/src/main/java工具 |
項目的 java源代碼測試 |
${basedir}/src/main/resourcesui |
項目的資源,好比說 property文件 |
${basedir}/src/test/java |
項目的測試類,好比說 JUnit代碼 |
${basedir}/src/test/resources |
測試使用的資源 |
一 個 maven 項目在默認狀況下會產生 JAR 文件,另外 ,編譯後 的 classes 會放在 ${basedir}/target/classes 下面, JAR 文件會放在 ${basedir}/target 下面。
這時有人會說了 , Ant 就沒有那麼多要求 ,它容許你能夠自由的定義項目的結構。在這裏不想引發口水戰哈, 我我的以爲 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,你須要 Internet 鏈接,由於 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 文件:
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) 中,因此這個時候你須要有 Internet 鏈接。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