您好,欢迎访问三七文档
Maven原理与实践大纲•何为Maven–构建,依赖管理,项目信息聚合•Maven核心概念–坐标,依赖,仓库,生命周期,插件•Maven最佳实践–创建、打包、发布、版本管理•项目实战•Nexus(Todo…)•M2eclipse(Todo…)•Q&A何为Maven?•依赖管理工具springslf4jhadoop……org.springframework:spring-core:3.2.4org.slf4j:slf4j-api:1.7.5org.hibernate:hibernate-core:4.2.5…:…:…中央仓储何为Maven?•构建工具–高度自动化–跨平台–丰富的可重用组件–标准化清理编译测试报告打包部署何为Maven?•项目信息聚合–版本控制系统信息,缺陷跟踪系统信息,开发者信息,许可证信息……–项目站点:javadoc,测试覆盖,代码静态分析报告……Maven核心概念•坐标•依赖•仓库•生命周期•插件坐标•groupId:com.sailing.sdp•artifactId:sdp-core•version:1.0.0-(SNAPSHOT/RELEASE)•packaging:jar(warearpom…)•classifier:jdk15(jdk14)com/sailing/sdp/sdp-core/1.0.0/sdp-core-1.0.0.jar坐标projectmodelVersion4.0.0/modelVersiongroupIdcom.sailing.sdp/groupIdartifactIdsdp-utils/artifactIdversion1.1.1-SNAPSHOT/versionpackagingjar/packagingnamesdp-utils/name/project依赖projectdependenciesdependencygroupIdorg.springframework/groupIdartifactIdspring-core/artifactIdversion3.2.4.RELEASE/version/dependencydependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion1.2.5/version/dependencydependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactIdversion3.1/version/dependency/project中央仓储依赖范围依赖范围(scope)对于主代码classpath有效对于测试代码classpath有效被打包,对于运行时classpath有效例子compileYYYlog4jtest-Y-Spring-testprovidedYYServlet-apiruntime-YJdbcdriver传递性依赖•使用spring‐core的时候,不用考spring‐core依赖了什么•万一出现问题的时候,不得不去了解spring‐core依赖了什么My-appSpring-coreCommon-loggingaspectjweaver…依赖相关技巧project...propertiessdp.version1.1.2-SNAPSHOT/sdp.version/propertiesdependenciesdependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion${spring.version}/version/dependencydependencygroupIdcom.sailing.sdp/groupIdartifactIdsdp-utils/artifactIdversion${sdp.version}/version/dependency/dependencies.../projectproject...dependenciesdependencygroupIdorg.springframework/groupIdartifactIdspring-core/artifactIdversion3.2.4.RELEASE/versionexclusionsexclusiongroupIdcommons-logging/groupIdartifactIdcommons-logging/artifactId/exclusion/exclusions/dependency/dependencies.../project依赖归类依赖排除依赖管理projectmodelVersion4.0.0/modelVersiongroupIdcom.sailing.sdp/groupIdartifactIdsdp-parent/artifactIdversion1.0.0SNAPSHOT/versiondependencyManagementdependenciesdependencygroupIdorg.springside/groupIdartifactIdspringside-core/artifactIdversion3.2.4/version/dependency/dependencies/dependencyManagement/projectprojectmodelVersion4.0.0/modelVersionparentgroupIdcom.sailing.sdp/groupIdartifactIdsdp-parent/artifactIdversion1.0.0-SNAPSHOT/version/parentartifactIdsdp-core/artifactIdpackagingjar/packagingdependenciesdependencygroupIdorg.springframework/groupIdartifactIdspring-core/artifactId/dependency/dependencies/project父项目子项目sdp-ormsdp-util仓库(Repository)•默认的,本地所Maven项目都复用一个本地仓库•本地仓库从远程仓库(可配置)下载必要的构件•中央仓库是唯一内置的远程仓库本地仓库~/.m2/repository远程仓库远程仓库中央仓库…仓库(Repository)repositoriesrepositoryidlocal-repository/idnamepublicrepositories/nameurl://maven.sit.com.cn/nexus/content/groups/public/urlreleasesenabledtrue/enabled/releasessnapshotsenabledtrue/enabled/snapshots/pluginRepository/pluginRepositoriessettingslocalRepositoryD:\m2_repository\/localRepository/settings添加远程仓储更改本地仓储位置~/.m2/settings.xml~/.m2/settings.xmlPom.xml生命周期•三套生命周期(clean,default,site)相互独立•一套生命周期中,生命周期阶段前后依赖•mvn命令指向生命周期阶段Pre-cleancleanpost-cleancompiletestpackageinstalldeployPre-sitesitePost-siteSite-deploymvncleanmvninstallmvnsiteMaven插件•Maven本身是一个框架,实际的任务都由插件完成•插件与生命周期阶段绑定,用户通过指定生命周期阶段就能够隐式的通过插件执行任务–例如:打包的时候,能够执行生成源码包和javaDoc核心插件打包工具报告插件工具clean、compiler、deploy、install、surefire、siteear、ejb、war、jar、rar、sourcechangelog、checkstyle、javadoc、jxr、pmd、antrun、assembly、gpg、help、release、eclipse、ideaMvn命令行•指定生命周期–$mvnclean清空项目的工作目录–$mvntest执行测试–$mvnpackage执行打包(jarwar…)–$mvninstall将组件安装到本地仓储–$mvndeploy将组件部署到远程仓储–$mvnsite生成项目站点信息•指定插件目标–$mvnjavadoc:javadoc生成项目的javadoc–$mvnsource:jar将项目的源码生成jarmvn命令行•项目中常用命令角色命令功能开发人员$mvnclean清除工作空间$mvntest执行单元测试实施人员$mvnpackage项目打包平台开发人员$mvndeploy项目发布Maven最佳实践•场景–通过maven骨架,创建一个名称为util的jar工程–该工程包含:common-lang3、slf4j、logback三个组件–编写一个isEmpty方法用于判断字符串是否为空–将util组件进行打包,打包时生成源码–发布util组件到远程仓储使用Maven创建项目•$mvnarchetype:generate–DarchetypeCatlog=internalPom.xml添加组件•在远程仓储中查找组件–•在pom.xml中添加组件Pom.xml•在Pom.xml中添加插件Maven打包•打包:将util工程打包成组件(warjar…)–$mvnpackage-Dmaven.test.skip=true–$mvninstall-Dmaven.test.skip=trueMaven发布•发布:将util组件发布到远程仓储–$mvndeploy–在远程仓储中查看util组件•
本文标题:Maven培训教材
链接地址:https://www.777doc.com/doc-959284 .html