
{企业通用培训}开发部Maven入门培训2.pptx
35页开发部Maven入门培训,2014-01-11,,,目录,1.Maven关键知识点 2.Maven的安装配置 3.用Maven构建项目 4.搭建Nexus私服 5.相关资料,,,1.Maven关键知识点,概念 是一系列构建工具的集合 约定大于配置 Maven项目约定目录如右图: pom.xml文件 项目对象模型(Project Object Model,POM) Maven坐标 groupId:artifactId:version,唯一确定一个项目如:,,,1.Maven关键知识点,本地仓库 存放从中央仓库下载的依赖组件 windows7默认地址:C:userxxx.m2repository linux默认地址:/.m2/repository 中央仓库 central repository:Apache官方维护的组件库 组件可升级,,,1.Maven关键知识点,生命周期与对应插件,普通javeSE工程的生命周期与对应插件(已由Maven绑定),普通JavaSE工程的Maven坐标:,,,1.Maven关键知识点,超级pom.xml文件 位于libmaven-model-builder-xxx.jarorgapachemavenmodel目录下 新建的Mavan项目pom.xml文件默认继承它,,,1.Maven关键知识点,Maven项目的版本号:,,,依赖范围:用、()、)、(区间表示 可选依赖:避免某些组件的依赖传递 传递依赖:,1.Maven关键知识点,注意:正常的依赖版本号(如3.8.2),表示“3.8.2”最佳,其他版本也可以。
而3.8.2表示必须3.8.2版本,其他版本不行例如依赖方向:项目A-项目B-项目C,则项目A对C有传递依赖1.Maven关键知识点,传递范围对依赖关系的影响:,父项目的标签:会把依赖版本号散布到其子项目中子项目不需再指明1.Maven关键知识点,用Maven构建项目的好处 可自动解决组件依赖问题 类似Fedora的yum和Ubuntu的apt-get工具 其他原因: 本地/中央仓库实现多个项目的jar包集中管理 编译、测试、打包、部署、分发自动化工具 软件轻量级发布;,,,目录,1.Maven关键知识点 2.Maven的安装配置 3.用Maven构建项目 4.搭建Nexus私服 5.相关资料,,,2.Maven的安装配置,首次构建Maven项目: 安装并配置好Java5+ 外网http连接,,,2.Maven的安装配置,修改Maven主配置文件conf/settings.xml,指定本地仓库位置:,配置http代理:,,,2.Maven的安装配置,机器安装Java5以上,并配置好环境变量 下载Maven,解压,配置环境变量: 增加M2_HOME指向D:apache-maven-3.1.1 把%M2_HOME%bin变量加入Path变量 查看Maven是否安装成功(cmd下):,,,2.Maven的安装配置,配置Eclipse的http代理:,Eclipse官方Kepler版本自带M2Eclipse插件:,Eclipse中打开Maven视图:,,,2.Maven的安装配置,Eclipse里设置Maven安装的路径和settings.xml文件:,Eclipse对Maven工程的支持:,,,目录,1.Maven关键知识点 2.Maven的安装配置 3.用Maven构建项目 4.搭建Nexus私服 5.相关资料,,,3.1构建JavaSE项目,结合实例讲解:E:projectsmvnexbook-examples-1.0ch-simplesimple,创建Maven工程:,构建打包:,运行:,查看有效pom文件:,发布站点:,,,3.2定制Maven项目,结合实例讲解:E:projectsmvnexbook-examples-1.0ch-customsimple-weather,创建Maven项目,并指明版本号替代默认的snapshot:,查看已解决的插件依赖:,查看依赖树: $ mvn dependency:tree,忽略测试失败:,,,3.2定制Maven项目,,连同依赖的组件一起打包:,,,3.3一个简单的Web应用,结合实例讲解:E:projectsmvnexbook-examples-1.0ch-simple-websimple-webapp,pom.xml中packaging方式改为了war:,,,3.3一个简单的Web应用,,加入servlet的支持和jetty插件:,启动jetty:,访问地址: http://localhost:8080/simple-webapp/,因为原生的servlet标准由Sun/Oracle公司维护,不提供给Maven官方。
因此Apache组织的geromino项目重写了一个specs组件,可作为servlet的完美替代品3.3一个简单的Web应用,增强pom.xml文件:,标签中的provided值表示该组件在部署时已经由web容器提供:,加入jsp2.0的支持:,,,3.4构建多模块项目,结合实例的E:projectsmvnexbook-examples-1.0ch-multi项目的pom.xml简单了解,父项目:,子项目1(App项目):,子项目2(Web项目):,,,3.5构建SpringHibernate项目,结合实例E:projectsmvnexbook-examples-1.0ch-multi-springsimple-parent简单了解各模块的依赖/继承关系图:,,,3.5构建SpringHibernate项目,在我本地运行失败!(无法解决依赖),项目目录结构,parent项目的pom.xml文件,,,3.6Maven最佳实践,优化和重构pom.xml: 依赖归类 多模块vs继承 sonatype.org的Nexus仓库管理器 Maven项目直接请求中央仓库效率非常低! 部署在共享服务器上,可以为中央仓库创建本地缓存,减少网络请求 便于开发团队共享已下载的组件,,,目录,1.Maven关键知识点 2.Maven的安装配置 3.用Maven构建项目 4.搭建Nexus私服 5.相关资料,,,4.搭建Nexus私服,步骤: 下载nexus-latest-bundle.zip,解压,新建NEXUS_HOME环境变量(图1): 注册并启动Nexus服务(图2):,图1,图2,默认地址:http://localhost:8081/nexus/,但对IE8.0兼容不好!建议用ff、chrome,,,4.搭建Nexus私服,步骤: 用admin/admin123登录后,设置代理服务器:,,,4.搭建Nexus私服,,把三个proxy类型的仓库Download Remote Indexes改为true,,,4.搭建Nexus私服,步骤: 修改Maven安装目录settings.xml(图1): 修改Maven项目的pom.xml文件(图2):,图1,图2,,,4.搭建Nexus私服,最新的nexus-2.7.0-06-bundle只支持JDK1.7! 已有项目拆分构建,分为webapp、Spring、Hibernate三个子项目: 降低模块间耦合度 便于维护升级 首先用高级应用系统的minimal测试,,,目录,1.Maven关键知识点 2.Maven的安装配置 3.用Maven构建项目 4.搭建Nexus私服 5.相关资料,,,5.相关资料,Maven插件库: http://maven.apache.org/plugins/index.html Maven中央仓库: 教程: Maven权威指南中文版.pdf 教程代码: mvnex-examples.zip,,,。
