Maven培训教材幻灯片_第1页
Maven培训教材幻灯片_第2页
Maven培训教材幻灯片_第3页
Maven培训教材幻灯片_第4页
Maven培训教材幻灯片_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Maven原理与实践,1,2,大纲,何为Maven 构建,依赖管理,项目信息聚合 Maven核心概念 坐标,依赖,仓库,生命周期,插件 Maven最佳实践 创建、打包、发布、版本管理 项目实战 Nexus(Todo) M2eclipse(Todo) Q&A,2,2020/7/7,何为Maven?,依赖管理工具,spring,slf4j,hadoop,org.springframework:spring-core:3.2.4,org.slf4j:slf4j-api:1.7.5,org.hibernate: hibernate-core:4.2.5, : : ,中央 仓储,3,2020/7/7,何

2、为Maven?,构建工具 高度自动化 跨平台 丰富的可重用组件 标准化,清理,编译,测试,报告,打包,部署,4,2020/7/7,何为Maven?,项目信息聚合 版本控制系统信息,缺陷跟踪系统信息,开发者信息,许可证信息 项目站点:javadoc,测试覆盖,代码静态分析报告,5,2020/7/7,Maven核心概念,坐标 依赖 仓库 生命周期 插件,6,2020/7/7,坐标,groupId: com.sailing.sdp artifactId:sdp-core version:1.0.0-(SNAPSHOT/RELEASE) packaging:jar(war ear pom) class

3、ifier:jdk15(jdk14) com/sailing/sdp/sdp-core/1.0.0/sdp-core-1.0.0.jar,7,2020/7/7,坐标, 4.0.0 com.sailing.sdp sdp-utils 1.1.1-SNAPSHOT jar sdp-utils ,8,2020/7/7,依赖, org.springframework spring-core 3.2.4.RELEASE com.alibaba fastjson 1.2.5 mons commons-lang3 3.1 ,中央仓储,9,2020/7/7,依赖范围,10,2020/7/7,传递性依赖,使用s

4、pringcore的时候,不用考springcore依赖了什么 万一出现问题的时候,不得不去了解springcore依赖了什么,My-app,Spring-core,Common-logging,aspectjweaver,11,2020/7/7,依赖相关技巧, . 1.1.2-SNAPSHOT org.springframework spring-webmvc $spring.version com.sailing.sdp sdp-utils $sdp.version . , . org.springframework spring-core 3.2.4.RELEASE commons-lo

5、gging commons-logging . ,依赖 归类,依赖 排除,12,2020/7/7,依赖管理, 4.0.0 com.sailing.sdp sdp-parent 1.0.0SNAPSHOT org.springside springside-core 3.2.4 , 4.0.0 com.sailing.sdp sdp-parent 1.0.0-SNAPSHOT sdp-core jar org.springframework spring-core ,父项目,子项目,sdp-orm,sdp-util,13,2020/7/7,仓库(Repository),默认的,本地所Maven项

6、目都复用一个本地仓库 本地仓库从远程仓库(可配置)下载必要的构件 中央仓库是唯一内置的远程仓库,本地仓库,/.m2/repository,远程仓库,远程仓库,中央仓库,/maven2,Project-A,Project-B,Project-,14,2020/7/7,仓库(Repository), local-repository public repositories true true local-plugin-repository local plugin repository true true , D:m2_repository ,添加远程仓储

7、,更改本地仓储位置,/.m2/settings.xml,/.m2/settings.xml,Pom.xml,15,2020/7/7,生命周期,三套生命周期(clean, default, site)相互独立 一套生命周期中,生命周期阶段前后依赖 mvn 命令指向生命周期阶段,mvn clean,mvn install,mvn site,16,2020/7/7,Maven插件,Maven本身是一个框架,实际的任务都由插件完成 插件与生命周期阶段绑定,用户通过指定生命周期阶段就能够隐式的通过插件执行任务 例如:打包的时候,能够执行生成源码包和javaDoc,17,2020/7/7,Mvn命令行,指

8、定生命周期 $ mvn clean 清空项目的工作目录 $ mvn test 执行测试 $ mvn package 执行打包(jar war) $ mvn install 将组件安装到本地仓储 $ mvn deploy 将组件部署到远程仓储 $ mvn site 生成项目站点信息 指定插件目标 $ mvn javadoc:javadoc 生成项目的javadoc $ mvn source:jar 将项目的源码生成jar,18,2020/7/7,mvn命令行,项目中常用命令,19,2020/7/7,Maven最佳实践,场景 通过maven骨架,创建一个名称为util的jar工程 该工程包含:co

9、mmon-lang3、slf4j、logback三个组件 编写一个isEmpty方法用于判断字符串是否为空 将util组件进行打包,打包时生成源码 发布util组件到远程仓储,20,2020/7/7,使用Maven创建项目,$mvn archetype:generate DarchetypeCatlog=internal,21,2020/7/7,Pom.xml,22,2020/7/7,添加组件,在远程仓储中查找组件 在pom.xml中添加组件,23,2020/7/7,Pom.xml,在Pom.xml中添加插件,24,2020/7/7,Maven打包,打包:将util工程打包成组件(war ja

10、r ) $ mvn package -Dmaven.test.skip=true $ mvn install -Dmaven.test.skip=true,25,2020/7/7,Maven发布,发布:将util组件发布到远程仓储 $ mvn deploy 在远程仓储中查看util组件 , nexus-releases release nexus-snapshots snapshot ,pom.xml,26,2020/7/7,版本管理规范,1.3.4beta2 . 1.0.0SNAPSHOT & 1.4.120091030124744108 处于开发中的不稳定版本 方便及时的获得团队其它模块的

11、状态 Maven自动更新(by day),强制更新: U 原则:不要依赖任何外部构建的SNAPSHOT版本,主要版本发布,相对次要版本发布,重要bug修复,里程碑版本:alpha,27,2020/7/7,项目实战,大数据项目 项目中使用lib包 仓储中没有项目中使用的第三方组件; 没有掌握将第三方组件上传到仓储中的方法; Assembly插件的使用方法不正确; 编译不通过 私服仓库中没有自主开发的组件;,28,2020/7/7,项目实战,如何为项目添加组件,29,2020/7/7,项目实战,如何为项目添加第三方组件(ojdbc),30,2020/7/7,项目实战,如何在内外网隔离的环境下使用maven 方式一:将本地仓储拷贝至内网环境的开发人员机器中; 方式二:在内网环境中搭建nexus私服仓储服务,并确保私服仓储服务中有比较完整的组件,31,2020/7/7,项目实战,如何将内部组件部署到远程仓储 pom.xml中添加部署的目标地址 执行mvn deploy命令进行部署, nexus-releases

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论