Maven3应用分享目录010203Maven简介Maven安装Maven实践传统项目回顾JAR依赖不明确,到处找JAR包JAR版本混乱,版本冲突JAR命名没有版本号工程源码带JAR包文件上百兆,占用大量SVN空间严重依赖IDE,离开IDE不能编译打包内部公用代码JAR版本控制难Maven是什么Maven能做什么•提供了Java项目的最佳开发实践,可自动生成项目结构。指导开发•自动编译,还包括测试,打包,发布,文档生成自动编译•Maven可以方便地管理应用程序依赖,例如第三方依赖、模型依赖依赖管理•插件模式可以无限增强Maven功能,例如通过Tomcat、Jetty插件可以自由控制其服务器。无限扩展•更简单和谐的团队协作,公司内部JAR版本管理开发协作Maven生命周期清理编译测试报告打包部署Maven版本规范1.2.3-beta-2主版本.次版本.增量版本-限定符主要版本发布相对次要版本发布重要BUG修复版本发布里程碑版本alpha、beta…0.0.1-SNAPSHOT表示处于开发阶段的不稳定版本方便及时获取团队其他模块的状态在构建时会动态从版本库更新最新包Maven安装下载安装包Windows下安装系统需要安装JDK1.4+解压到本地磁盘目录例如D:\software\dev\apache-maven-3.2.3Maven安装配置环境变量M2_HOME=安装目录PATH中增加%M2_HOME%\binMAVEN_OPTS=-Xms256M–Xmx512M(非必须,可防止内存溢出)验证安装在cmd中执行mvn–v能看到maven版本号和jdk版本表示安装成功Maven名称解释Project:任何你想build的事物都可以认为是工程,一个工程可以由多个子工程构成POM:POM(pom.xml)是Maven的核心文件,它是指示Maven如何工作的元数据文件,POM文件位于每个工程的根目录中GroupId:groupId是一个工程在全局中唯一的标识符,一般是项目包名,例如org.springframeworkArtifactId:一般是模块的名称,groupId和artifactId一起组合成唯一坐标。例如spring-core,spring-jdbcDependency:依赖包Plug-in:Maven是由插件组件,它的每一个功能都是由插件提供Repository:仓库Maven仓库中央仓库本地仓库企业仓库Maven仓库中央仓库Maven内置了远程公用仓库这个公共仓库由ApacheMaven维护,包含大量的常用类库企业仓库企业内部私有共享仓库,也称私服,一般由公司自己设立,只为公司内部共享使用。私服即可作为公司内部构件协作和存档,也可作为中央仓库的镜像缓存本地仓库Maven会将工程中依赖的jar从远程仓库下载到本机一个目录下管理,默认在$user.home/.m2/repository目录下修改默认仓库位置:修改$M2_HOME/conf/settings.xmllocalRepositoryD:/software/dev/maven_libs/localRepository使用Maven私服在Maven安装目录conf/settings中加入MavenPOMprojectgroupIdartifactIdversionbuildresourcesplugindependenciesdependencygroupIdartifactIdversionprofilesprofileMavenPOMpom是Maven项目的核心配置文件,位于每个工程的根目录,指示Maven工作的元数据文件。节点介绍project:文件的根节点.modelversion:pom.xml使用的对象模型版本.groupId:创建项目的组织或团体的唯一Id.artifactId:项目的唯一Id,可视为项目名.packaging:打包类型,一般有JAR,WAR,EAR,POM等version:产品的版本号.name:项目的显示名,常用于Maven生成的文档。url:组织的站点,常用于Maven生成的文档。description:项目描述,常用于Maven生成的文档。dependencies:构件依赖parent:模型继承dependencyManagement:依赖管理reporting:创建报告build:构建repositories:引用第三方仓库licenses:许可在MyEclipse中使用Maven在MyEclipse中使用Maven创建Maven工程File——New——WebProject创建Maven工程创建Maven工程创建Maven工程创建Maven工程添加依赖包在工程目录或者pom.xml上点右键——Maven4MyEclipse——AddDependency排除传递依赖在有些情况下,引入的依赖jar还依赖的其他jar,例如dubbo包依赖spring2.5,与现有工程spring4冲突,需要排除spring2.5Maven打包在工程目录右键——RunAs——MaveninstallMaven打包在执行Maveninstall时会自动执行test目录下的junit单元测试,单元测试不通过时打包失败,如需跳过单元测试,有两种方式方法一:配置maven-surefire-plugin插件skipTests为true方法二:RunAs——MavenBuild…Maven多模块组合开发Maven多模块组合开发Maven多模块组合开发THANKS