日期:2014-05-19 浏览次数:20872 次
一.背景
Maven2 的基本原理很简单,采用远程仓库和本地仓库以及? pom(project object model).xml? ,将? pom.xml? 中定义的? jar? 文件从远程仓库下载到本地仓库,各个应用使用同一个本地仓库的? jar? ,同一个版本的? jar? 只需下载一次,而且避免每个应用都去拷贝? jar? 。如图? 1? 。同时它采用了现在流行的插件体系架构,只保留最小的核心,其余功能都通过插件的形式提供,所以在执行? maven? 任务时,才会自动下载需要的插件。这个特性也为客户系统的升级带来的很大的方便,客户每次升级的时候可以使用maven的远程部署功能自动下载最新的系统组件(jar),并重新打包部署,很大程度的减少的系统升级的工作量。
理解Maven的原理,可以参考 Pear ――PHP扩展与应用库( the PHP Extension and Application Repository ),其原理非常类似,都有一个官方库,都是微内核,通过网络将需要的文件下载到本地,通过官方仓库将相应的类库进行统一管理。
???? Maven2的基本安装方法网上很多,就到http://maven.apache.org下载一个最新版,解压后即可,如果需要在命令行运行,还需要设置一些环境变量,网上的资料很多,这里就不多说了。总之,安装成功后当你在命令行下执行maven -version后正确显示当前maven的版本即可。
???? 我们在项目中结合maven的进行开发的主要思路:
?? 1.建立支持Maven2的开发框架,框架中结合了一些项目功能和工具类,并且此框架本身是一个eclipse工程,支持使用eclipse IDE的开发,并通过CVS可进行团队协作。
?? 2.在Maven2的pom.xml中制定开发框架的依赖包,并建立依赖包的团队管理本地服务器,使团队中的包依赖得到统一管理。
?? 3.每日下班后,在构建服务器上每日从cvs上下载各个团队开发人员的代码,统一进行集成构建和测试。由于是每日构建,所以发现的bug可及时反馈给开发人员进行修正,避免了一般开发过程中的bug长时间遗留的情况。
二.实施过程
为了实现上述思路,我们分几步实施:
1.首先需要构建一个系统的开发框架,
??? 我们有两种方式构建,
??? 其一是从零开始构建全新的框架,进入commond line,cd 到一个目录 ,执行
mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp
执行完毕后接下来cd 到项目目录my-webapp下,执行
mvn package mvn eclipse:eclipse
之后,打开eclipse,到其目录下导入项目,并手动编辑pom.xml文件,设定指定的jar包,比如加入一个jwebunit的jar包,我们需要在pom中添加一段:
<dependency> <groupId>jwebunit</groupId> <artifactId>jwebunit</artifactId> <version>1.2</version> <scope>test</scope> <exclusions> <exclusion> <groupId>rhino</groupId> <artifactId>js</artifactId> </exclusion> </exclusions> </dependency>
其中指定了包的名称,版本,使用的范围域等,pom.xml设置方式网上也是一堆一堆的,具体的可以自己搜搜。同时我们也可以使用maven2在 ecli