前段时间因为项目的需要,用到了WebService技术、消息中间件以及工作流;于是自然而然的下载相关的开源项目来学习与使用!CXF、ActiveMQ、JBPM! 而这三块的官方示例或其本身都是用Maven或Ant来构建的,其中CXF Samples(version-2.7.5) 是用Maven构建的,ActiveMQ example(version-5.8.0) 是用Ant 构建的,而JBPM这个让我费了半天劲才弄好的工作流引擎的安装与部署整个都是基于Ant的。
所以我不得不花时间学习一下,要说二者怎么区分,最笨也最有效的方法就是看其根目录的配置文件,若是基于Maven构建,则为pom.xml文件,若是基于Ant,则为 build.xml文件;
下面几点是我主要介绍的内容:
1、Maven 与 Ant 的安装
2、怎么与Eclipse(MyEclipse)整合
3、创建一个简单的Maven 或 Ant 项目
4、二者各自的有点与不足,即应用场景的选择
一、Maven 与 Ant 的安装
其实这部分很简单,说白了就3句话:下载压缩包,解压缩,配置环境变量;
首先从官网下载压缩包,我用的分别是apache-maven-3.0.5-bin.zip和apache-ant-1.9.1-bin.zip,并解压缩之;
然后就是配置环境变量:
对于Maven来说,官网上有一段介绍,非常详细,相信大家都能看得懂,Copy如下------
For -->Windows 2000/XP
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” ;
二、怎么与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就好了。
三、创建一个简单的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包依赖,有如下几种情况:
1、 远程库依赖
2、 本地库依赖
注意:默认本地库是Default: ~/.m2/repository;
可在本地解压路径D:\apache-maven-3.0.5-bin\apache-maven-3.0.5\conf下settings.xml文件中修改如下:
3、 本地依赖
另外,介绍几个Maven 仓库的网址:
四、二者各自的优点与不足,即应用场景的选择
了解了二者的安装、部署以及简单工程的创建后,我们还需要了解他们的使用场合及各自的优缺点吧,总不能我们在建项目的时候不知道如何选择。
但是这实在是一个复杂而庞大的问题,我甚至只是了解了一点皮毛而已,网上有许多大牛都有一些分享,大家可以搜索研究一下,下面说一下个人的浅见。
Maven build 提倡惯例优于配置,他会按照默认的方式搭建目录结构,省去了我们手动编写build.xml(如果你用Ant的话)的功夫,这对于我们这种新手来说相对不错,不过后期改动起来比较麻烦;
另外,Maven的dependence management(依赖,其实对于J2EE平台就是jar包管理)用来管理所有此project的dependences,且在dependence repository中自动查找和下载dependence。Maven对所依赖的包有明确的定义,如使用那个包,版本是多少,一目了然。但是Maven会出现莫名奇妙的问题,而且需要网络的支持。
Ant build 则相对灵活尽管需要我们手动编写build.xml文件;Ant对依赖管理通常是简单的include 所有的jar,这样项目就会很大,如果是多人开发,则浪费资源,但是他更稳定。
最后,推荐大家几篇译文: