前段時間由於項目的須要,用到了WebService技術、消息中間件以及工做流;因而天然而然的下載相關的開源項目來學習與使用!CXF、ActiveMQ、JBPM! 而這三塊的官方示例或其自己都是用Maven或Ant來構建的,其中CXF Samples(version-2.7.5) 是用Maven構建的,ActiveMQ example(version-5.8.0) 是用Ant 構建的,而JBPM這個讓我費了半天勁才弄好的工做流引擎的安裝與部署整個都是基於Ant的。html
因此我不得不花時間學習一下,要說兩者怎麼區分,最笨也最有效的方法就是看其根目錄的配置文件,如果基於Maven構建,則爲pom.xml文件,如果基於Ant,則爲 build.xml文件;linux
下面幾點是我主要介紹的內容:apache
一、Maven 與 Ant 的安裝windows
二、怎麼與Eclipse(MyEclipse)整合網絡
三、建立一個簡單的Maven 或 Ant 項目app
四、兩者各自的有點與不足,即應用場景的選擇eclipse
1、Maven 與 Ant 的安裝maven
其實這部分很簡單,說白了就3句話:下載壓縮包,解壓縮,配置環境變量;學習
首先從官網下載壓縮包,我用的分別是apache-maven-3.0.5-bin.zip和apache-ant-1.9.1-bin.zip,並解壓縮之;測試
而後就是配置環境變量:
對於Maven來講,官網上有一段介紹,很是詳細,相信你們都能看得懂,Copy以下------
- Unzip the distribution archive, i.e. apache-maven-3.0.5-bin.zip to the directory you wish to install Maven 3.0.5. These instructions assume you chose C:\Program Files\Apache Software Foundation. The subdirectory apache-maven-3.0.5 will be created from the archive.
- Add the M2_HOME environment variable by opening up the system properties (WinKey + Pause), selecting the "Advanced" tab, and the "Environment Variables" button, then adding the M2_HOME variable in the user variables with the value C:\Program Files\Apache Software Foundation\apache-maven-3.0.5. Be sure to omit any quotation marks around the path even if it contains spaces. Note: For Maven 2.0.9, also be sure that the M2_HOME doesn't have a '\' as last character.
- In the same dialog, add the M2 environment variable in the user variables with the value %M2_HOME%\bin.
- Optional: In the same dialog, add the MAVEN_OPTS environment variable in the user variables to specify JVM properties, e.g. the value -Xms256m -Xmx512m. This environment variable can be used to supply extra options to Maven.
- In the same dialog, update/create the Path environment variable in the user variables and prepend the value %M2% to add Maven available in the command line.
- In the same dialog, make sure that JAVA_HOME exists in your user variables or in the system variables and it is set to the location of your JDK, e.g. C:\Program Files\Java\jdk1.5.0_02 and that %JAVA_HOME%\bin is in your Path environment variable.
- Open a new command prompt (Winkey + R then type cmd) and run mvn --version to verify that it is correctly installed.
大體說什麼呢?
添加環境變量M2_HOME、M2 、以及爲Path追加(append)「%M2%」 ;
而後就測試一下配置是否正確,命令以下:
$ 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"
若是你看到相似上面的輸出的話,就說明安裝成功了。我我的的狀況以下:
提醒一下:注意windows系統與linux系統的命令;
對於Ant 則更簡單,添加環境變量ANT_HOME 及爲Path追加(append)「%ANT_HOME%\bin」 ;
2、怎麼與Eclipse(MyEclipse)整合
很高興的看到,Myeclipse自己已經內置了maven的插件,我們就不須要單獨安裝了,惟一須要修改的是Myeclipse中使用的maven版本,無論Myeclipse使用的是哪一個版本,我們都統一改爲剛纔下載到本地安裝的版本,方法是:
1.菜單依次進入:windows–>Ppreferences–>MyEclipse–>Mave4MyEclipse–>Maven–>Installations
2.增長本地的maven到MyEclipse中
3.修改setting.xml文件
4.到此,MyEclipse的maven環境配置完成。
對於Ant來講,其實Eclipse和Myeclipse都自動集成了Ant ,固然若是你想引用本地Ant ,那麼設置以下:
Window >>Preferences>>Ant>>Runtime選中右邊框中的Ant Home Entries,點擊Add Home按鈕,選擇你本身的安裝目錄,apply就行了。
3、建立一個簡單的Maven 或 Ant 項目
對於Maven,打開MyEclipse,依次進入file-->new—>others—>MyEclipse—>Maven4MyEclipse—>Maven project
點擊Next,而後勾選Create a simple project ,點擊Next
這時須要你輸入Group Id ()和Artifact Id ()等信息
finish便可完成,這時的目錄結構以下:
這樣一個Maven 工程就建好了,不過在使用的時候有一個問題絕對你會遇到就是jar包的依賴。
關於jar包依賴,有以下幾種狀況:
一、 遠程庫依賴
二、 本地庫依賴
注意:默認本地庫是Default: ~/.m2/repository;可在本地解壓路徑D:\apache-maven-3.0.5-bin\apache-maven-3.0.5\conf下settings.xml文件中修改以下:三、 本地依賴
另外,介紹幾個Maven 倉庫的網址:
對於Ant 工程的建立,給你們連接一片博客:http://mazhiyang88.blog.163.com/blog/static/297339320110104843857/;
4、兩者各自的優勢與不足,即應用場景的選擇
瞭解了兩者的安裝、部署以及簡單工程的建立後,咱們還須要瞭解他們的使用場合及各自的優缺點吧,總不能咱們在建項目的時候不知道如何選擇。
可是這實在是一個複雜而龐大的問題,我甚至只是瞭解了一點皮毛而已,網上有許多大牛都有一些分享,你們能夠搜索研究一下,下面說一下我的的淺見。
Maven build 提倡慣例優於配置,他會按照默認的方式搭建目錄結構,省去了咱們手動編寫build.xml(若是你用Ant的話)的功夫,這對於咱們這種新手來講相對不錯,不事後期改動起來比較麻煩;
另外,Maven的dependence management(依賴,其實對於J2EE平臺就是jar包管理)用來管理全部此project的dependences,且在dependence repository中自動查找和下載dependence。Maven對所依賴的包有明確的定義,如使用那個包,版本是多少,一目瞭然。可是Maven會出現莫名奇妙的問題,並且須要網絡的支持。
Ant build 則相對靈活儘管須要咱們手動編寫build.xml文件;Ant對依賴管理一般是簡單的include 全部的jar,這樣項目就會很大,若是是多人開發,則浪費資源,可是他更穩定。
最後,推薦你們幾篇譯文:
http://hintcnuie.iteye.com/blog/122597