日期:2014-05-19  浏览次数:20821 次

结合Maven2进行J2EE项目构建 转

一.背景
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 到一个目录 ,执行

Java代码 复制代码
  1. mvn?archetype:create?-DgroupId=com.mycompany.app?-DartifactId=my-webapp?-DarchetypeArtifactId=maven-archetype-webapp??
mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp



执行完毕后接下来cd 到项目目录my-webapp下,执行

Java代码 复制代码
  1. mvn?package??
  2. mvn?eclipse:eclipse??
mvn package
mvn eclipse:eclipse



之后,打开eclipse,到其目录下导入项目,并手动编辑pom.xml文件,设定指定的jar包,比如加入一个jwebunit的jar包,我们需要在pom中添加一段:

Java代码 复制代码
  1. <dependency> ??
  2. ????????????<groupId>jwebunit</groupId> ??
  3. ????????????<artifactId>jwebunit</artifactId> ??
  4. ????????????<version>1.2</version> ??
  5. ????????????<scope>test</scope> ??
  6. ????????????<exclusions> ??
  7. ????????????????<exclusion> ??
  8. ????????????????????<groupId>rhino</groupId> ??
  9. ????????????????????<artifactId>js</artifactId> ??
  10. ????????????????</exclusion> ??
  11. ????????????</exclusions> ??
  12. ????????</dependency>??
<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