Maven2+Eclipse开发J2EE

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1 基于 Maven2+Eclipse+WTP+m2eclipse 开发 Java EE 应用程序 谢超良 Jimmy.Shine@Gmail.com Sep 20,2010 一、 Maven l 什么是Maven? Maven是标准、存储格式以及一些软件用以管理和描述项目。它为构建、测试、部署项目定义了一个标准 的生命周期。它提供了一个框架,允许遵循 Maven 标准的所有项目,方便的重用的构建逻辑。Maven 项 目存在的 Apache 软件基金会,是一个开源社区,它开发的软件工具,基于一个通用的软件对象模型 (Project Object Model),也就是POM。 l 约定大于配置 Maven遵循约定大于配置的原则。 通过给项目提供默认的行为来减少不必要的配置。 l POM 在一个Maven项目中,通过声明POM来指定项目的相关信息。 Maven对于项目的唯一标识条件: Group ID, artifact ID, version(简称GAV)2 l Maven项目的结构 一个Maven的项目包括如下结构: 其中: src存放源代码,target存入的是编译后的,pom.xml是Maven用来描述项目的文件。 main中存放用来发布至生产环境的代码及配置,test中存放测试时候使用的代码及配置。 java中存放java代码,resource中存放配置文件。 一个web项目结构如下: 一个web项目中增加了一个webapp,用来存放web页面代码。 l Maven的生命周期 Maven默认的生命周期阶段包括:·validate ­ validate the project is correct and all necessary information is available·compile ­ compile the source code of the project3 ·test­ test the compiled source code using a suitable unit testing framework. These tests should not require the code be packaged or deployed·package ­ take the compiled code and package it in its distributable format, such as a JAR.·integration­test ­ process and deploy the package if necessary into an environment where integration tests can be run·verify ­ run any checks to verify the package is valid and meets quality criteria·install ­ install the package into the local repository, for use as a dependency in other projects locally·deploy ­ done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects. Maven2.2的一个完整的阶段包括: validate,generate­sources,process­sources,generate­resources,process­reso urces,compile,process­classes,generate­test­sources,process­test­sources, generate­test­resources,process­test­resources,test­compile,test,prepare­ package,package,pre­integration­test,integration­test,post­intgration­tes t,verify,install,deploy 生命周期阶段 描述 validate 验证项目是否正确,以及所有为了完整构建所需要的信息是否可用 generate­sources 生成所有需要包含在编译过程中的源代码 process­sources 处理源代码,比如过滤一些值 generate­resources 生成所有需要包含在打包过程中资源文件 process­resources 复制并处理资源文件至目标目录 compile 编译项目的源代码 process­classes 后处理编译生成的文件, 例如对Java类进行一些代码增强 (bytecode) generate­test­sources 生成所有包含在测试编译过程的测试源码 process­test­sources 处理测试源码,比如过滤一些值 generate­test­resources 生成测试需要的资源文件 process­test­resources 复制并处理测试资源文件至于测试目录 test­compile 编译测试源码至测试目标目录 test 使用合适的单元测试框架运行测试 prepare­package 在真正的打包之前,执行一些准备打包必要的操作 package 将编译好的代码打包成可分发的格式,如JAR,WAR,EAR. pre­integration­test 执行一些在集成测试运行之前需要的动作,如建立执行测试需要的环境 integration­test 处理包并发布至集成测试可以运行的环境 post­integration­test 执行一些在集成环境运行之后需要的动作,如清理集成测试环境 Verify 执行所有的检查,验证包是有效的,符合质量规范 Install 安装包至本地仓库,以备其它的项目做为依赖使用 Deploy 复制最终的包至远程仓库,共享给其它开发人员和项目(通常和一次正 式的发布相关) l 如何执行Maven 1. 安装Maven (1) 下载Maven,并解压4 (2) 在系统环境变量中设置M2_HOME (3) 将%M2_HOME%/bin;加入至系统环境变量path中。 (4) 在DOS窗口中,输入mvn –version,若显示版本号相关信息,则安装成功。 2. 配置Maven Maven的配置是通过%M2_HOME%/conf/setting.xml来进行配置。 setting.xml用来配置一些全局性的配置,包括代理服务器的地址,本地的存储库的地址等。 常用的配置包括: (1) 本地Maven存储库的地址(localRepository) 用来定义本地的 Maven 的库的存储地址,即从 Maven 仓库中下载的文件的存储的位5 置。 如: localRepositoryd:/Maven/repository/localRepository (2) Maven服务器地址(server) 在发布构件至本地的情况下需要。 如: servers server idnexus­releases/id usernameadmin/username passwordadmin123/password /server server idnexus­snapshots/id usernameadmin/username passwordadmin123/password /server /servers (3) 镜像服务器(Mirror) 定义镜像服务器来替代指定的仓库,即通过匹配相关的远程的仓库的id从镜像的服务 器上查找构件,而不从远程的服务上面查找。 如: mirrors mirror idnexus/id mirrorOf*/mirrorOf nameNexus Mirror for all./name url /mirror /mirrors (4) 配置(Profile) Profile用来定义仓库的地址和插件仓库的地址,用来发布、获取构件。 如: profiles profile idnexus/id repositories repository idnexus/id name本地开发库/name url layoutdefault/layout releasesenabledtrue/enabled/releases snapshotsenabledtrue/enabled/snapshots /repository /repositories pluginRepositories pluginRepository idnexus/id url releasesenabledtrue/enabled/releases snapshotsenabledtrue/enabled/snapshots /pluginRepository /pluginRepositories /profile /profiles (5) 激活配置 指定哪些配置被激活。6 如: activeProfiles activeProfilenexus/activeProfile /activeProfiles 3. 使用Maven (1) 创建Maven项目可以通过执行相应的maven命令来进行。 执行方式包括:mvn pluginId:goalId或者是mvn phase。 mvn pluginId:goalId是执行相关的插件的目标。 如: mvn –archetype:create –DgroupId=com.vaalhaai –DartifactId=common –DpackageName=com.vaalhaai.common 将创建一个新的项目。 其中: mvn是Maven的命令。 archetype:create称为Maven的目标。 archetype实际上是一个插件id, create 称之为目标id。 ­Dname=value是将会传入到目标中的参数,使用­D属性的形式,类似于通过命令行 向虚拟机传递系统属性。 一个Maven插件是一组或者多个目标的集合。 mvn phase是执行maven的生命周期的阶段 如: mvn package 将执行打包的操作。 可以将插件的目标绑定到Maven的生命周期上,每个阶段可以绑定零个或者是多个目 标。 Maven 在执行生命周期的时候,会有序的执行前置的所有阶段,直到命令指定的生命 周期。 l Maven的依赖管理 一个复杂项目会包含有很多的依赖,也可能是包含有依赖于其它构件的依赖。Maven 支持依赖传递 (transitive dependencies),如果你的项目依赖于一个库,而这个库又依赖于多个其它的库, 你只需要加上你依赖的库即可,Maven会自动将依赖的库的依赖加入你的项目中。 Maven中的对于项目的依赖的配置在POM.xml中,通过配置dependency来指定 如: dependenc

1 / 39
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功