maven对大多数人来讲应该只是听过而没有真正的了解过,我也今天才找了些资料试验了一下,发现确实对于项目管理来讲是一个可贵的好工具。简单来讲,maven就是一个基于命令行能够对项目整个生命周期—构建、测试、资源管理、文档、发布等一系列过程,进行管理的工具,之因此强调是命令行是觉得对于一个通用的项目构建工具是不该该依赖于IDE和平台的,和ant是类似的。
与ant的比较:能够简单的理解为ant的升级换代版本,思想上从ant上彻底的脱离出来,少了配置文件,只要安装后运行命令就能够进行构建,配置文件就只有一个pom.xml,简约并不意味着简单,maven提供了比ant更强大的功能,其中我最中意的就是包的依赖管理机制—当你构建项目时,maven自动从网站上下载须要的依赖包。maven的功能有待挖掘,运用好了个中好处远远超乎想像。
接下来,运用maven+eclipse+svn构建一个示例项目:
一、工具:环境ubuntu7.10
a)mavenhttp://maven.apache.org/download.html
b)M2eclipse--在线安装http://m2eclipse.codehaus.org/update/
c)Eclipse不用说了
d)Subeclipse版本控制的得力工具
e)mylyn不是必须的,任务驱动编程工具
二、安装:
a)maven安装在ubuntu上,直接下载包解压到/opt目录,
设置路径
sudo gedit /etc/environment
将/opt/maven/bin添加到路径中
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/maven/bin"
b)安装eclipse的插件
三、构建项目:
a)如今咱们要构建一个主项目,项目底下有两个子项目
jsf
|-jsf.core
|-jsf.web
b)先构建主项目:
工做目录为/home/linq/research/jsf/
mvn archetype:create -DgroupId=linq.jsf -DartifactId=jsf
咱们要将这个目录设置为主目录,将生成的src目录删除,修改pom.xml
<packaging>pom</packaging>
c)构建子项目:项目又core核心组件,和web工程组成
i.cd jsf
ii.构建普通java jar项目
iii.mvn archetype:create -DgroupId=linq.jsf.core -DartifactId=jsf-core
iv.构建web项目(注意红色字体)
v.mvn archetype:create -DgroupId=linq.jsf.web -DartifactId=jsf-web -DarchetypeArtifactId=maven-archetype-webapp
d)查看各个项目的pom.xml文件,能够看出各个子项目都在主项目的控制控制下,能够经过主项目发布打包项目
e)建立eclipse项目属性
i.cd jsr-core
ii.mvn eclipse:eclipse
iii.建立eclipse web属性
iv.cd ../jsf-web
v.mvn eclipse:eclipse -DdownloadSource=true -Dwtpversion=1.0
f)使用eclipse import工程
g) 能够是使用菜单命令添加依赖包
h)
查询依赖包,选择后便可以自动将包加载到项目中

i) 使用自带的命令就能够将项目构建发布 注意事项:因为一些依赖包受权的关系,有些须要手工添加,好比jta的包,须要从sun上下载jta-1_0_1B-classes.zip,而后解压经过命令mvn install:install-file -Dfile=/home/linq/temp/jta-1_0_1B-classes.zip -DgroupId=javax.transation -DartifactId=jta -Dversion=1.0.1B -Dpackaging=jar 建立jta的包到mvn的库中