网站开发 安全,如何制作营销网站,现在做网站还赚钱吗,漳州最具口碑的网站建设文章目录 Maven知识速查1. Maven概述2. Maven的作用3. Maven的下载4. Maven的环境配置5. Maven 的基础组成5.1 Maven仓库5.1.1 本地仓库配置#xff1a;5.1.2 中央仓库配置#xff1a;5.1.3 镜像仓库配置 5.2 Maven坐标 6. Maven项目6.1 手工创建Maven项目6.2 自动构建项目 7… 文章目录 Maven知识速查1. Maven概述2. Maven的作用3. Maven的下载4. Maven的环境配置5. Maven 的基础组成5.1 Maven仓库5.1.1 本地仓库配置5.1.2 中央仓库配置5.1.3 镜像仓库配置 5.2 Maven坐标 6. Maven项目6.1 手工创建Maven项目6.2 自动构建项目 7. Maven依赖管理7.1 依赖配置版本规范7.2 依赖传递7.3 可选依赖不展示7.4 排除依赖不需要7.5 依赖范围7.6 依赖范围传递 8. Maven生命周期与插件8.1 Maven生命周期8.2 Maven插件 Maven知识速查
1. Maven概述
Maven的本质是一个项目管理工具将项目开发和管理过程抽象成一个项目对象模型(POM)POM(Project Object Model):项目对象模型
2. Maven的作用
项目构建提供标准的、跨平台的自动化项目构建方式依赖管理方便快捷的管理项目依赖的资源(jar包)避免资源间的版本冲突问题统一开发结构提供标准的、统一的项目结构如下图 3. Maven的下载
官网http://maven.apache.org/下载地址http://maven.apache.org/download.cgi 注IDEA新版的直接自带Maven版本用自带的也比较好。不然配置繁琐。 4. Maven的环境配置
依赖 Java,需要配置 JAVA HOME。设置 MAVEN 自身的运行环境需要配置 MAVEN_HOME在Path中配置Maven的执行程序的路径相信各位老道的 Java 选手已经会了测试环境配置结果 MVN 5. Maven 的基础组成
5.1 Maven仓库 仓库用于储存 Jar 包供给 Java 项目使用。 仓库分类 本地仓库自己电脑上存储资源的仓库连接远程仓库获取资源 远程仓库非本机电脑上的仓库为本地仓库提供资源 中央仓库Mavenl团队维护存储所有资源的仓库https://repo1.maven.org/maven2/ 私服部门/公司范围内存储资源的仓库从中央仓库获取资源 私服的作用 保存具有版权的资源包含购买或自主研发的jar 中央仓库中的jar都是开源的不能存储具有版权的资源 一定范围内共享资源仅对内部开放不对外共享 5.1.1 本地仓库配置
Maven,启动后会自动保存下载的资源到本地仓库--! 默认位置
localRepository${user.home}/.m2/repository/localRepository当前目录位置为登录用户名所在目录下的.m2文件夹中
--! 自定义位置
localRepositoryD:\maven\repository/localRepository当前目录位置为D:maven repository.文件夹中5.1.2 中央仓库配置
在路径C:\Users\ljcg.m2\settings.xml 中修改配置
repositoriesrepositoryidcentral/idnameCentral Repository/nameurlhttps://repo.maven.apache.org/maven2/urllayoutdefault/layoutsnapshotsenabledfalse/enabled/snapshots/repository
/repositories5.1.3 镜像仓库配置
在路径C:\Users\ljcg.m2\settings.xml 中修改配置
mirrors!-- 配置具体的仓库的下载镜像 --mirror!-- 此镜像的唯一标识符用来区分不同的nirror元素 --idnexus-aliyun/id!-- 对哪种仓库进行镜像简单说就是替代哪个仓库 --mirrorOfcentral/mirrorOf!-- 镜像名称 --nameNexus aliyun/name!-- 镜像URL --urlhttp://maven.aliyun.com/nexus/content/groups/public/url/mirror
/mirrors5.2 Maven坐标
坐标Mavent中的坐标用于描述仓库中资源的位置https://repo1.maven.org/maven2/坐标的组成 groupld组织ID定义当前Maven项目隶属组织名称通常是域名反写例如org.mybatis) artifactld项目ID定义当前Maven项目名称通常是模块名称例如CRM、SMS) version版本号定义当前项目版本号 packaging定义该项目的打包方式 坐标的作用:使用唯一标识唯一性定位资源位置通过该标识可以将资源的识别与下载工作交由机器完成
6. Maven项目
6.1 手工创建Maven项目
Maven工程目录 在src同层目录下创建pom.xml
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdorg.example/groupIdartifactIduntitled/artifactIdversion1.0-SNAPSHOT/versionpackagingjar/packagingnameuntitled/nameurlhttp://maven.apache.org/urlpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependenciesdependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion3.8.1/versionscopetest/scope/dependency/dependencies
/project6.2 自动构建项目 Tomcat7运行插件:
buildpluginsplugingroupIdorg.apache.tomcat.maven/groupIdartifactIdtomcat7-maven-plugin/artifactIdversion2.1/versionconfigurationport80/portpath//path/configuration/plugin/plugins
/build7. Maven依赖管理
7.1 依赖配置版本规范
在 pom.xml 文件中安装所需要的依赖格式
!-- 设置当前项目所有依赖 --
dependencies!-- 设置具体需要的依赖 --dependency!-- 依赖所属群组 --groupIdjunit/groupId!-- 依赖所属项目 --artifactIdjunit/artifactId!-- 依赖版本 --version4.12/version/dependency
/dependencies!-- 版本规范 --
– SNAPSHOT:开发版本,表示该版本仍在开发中,可能会频繁改变。
– RELEASE:发布版本,表示该版本为稳定版本,很少改变。非SNAPSHOT的就是RELEASE
– ALPHA:内部测试版本,一般不供外部使用。
– BETA:公开测试版本,可供外部测试并提供反馈。7.2 依赖传递
依赖具有传递性 直接依赖在当前项目中通过依赖配置建立的依赖关系间接依赖被资源的资源如果依赖其他资源当前项目间接依赖其他资源 依赖传递冲突问题 路径优先当依赖中出现相同的资源时层级越深优先级越低层级越浅优先级越高声明优先当资源在相同层级被依赖时配置顺序靠前的覆盖配置顺序靠后的特殊优先当同级配置了相同资源的不同版本后配置的覆盖先配置的 7.3 可选依赖不展示
可选依赖指对外隐藏当前所依赖的资源一一不透明格式
dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/version!-- 隐藏配置 --optionaltrue/optional
/dependency7.4 排除依赖不需要
排除依赖指主动断开依赖的资源被排除的资源无需指定版本一一不需要
dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/version!-- 依赖排出配置 --exclusionsexclusiongroupIdorg.hamcrest/groupIdartifactIdhamcrest-core/artifactId/exclusion/exclusions
/dependency7.5 依赖范围
依赖的jar默认情况可以在任何地方使用可以通过 scope 标签设定其作用范围格式
scopecompile/scope作用范围 主程序范围有效(main文件夹范围内)测试程序范围有效(test文件夹范围内)是否参与打包(package指令范围内) 7.6 依赖范围传递
带有依赖范围的资源在进行传递时作用范围将受到影响 8. Maven生命周期与插件
8.1 Maven生命周期
Maven构建生命周期描述的是一次构建过程经历经历了多少个事件 8.2 Maven插件
插件与生命周期内的阶段绑定在执行到对应生命周期时执行对应的插件功能默认maven在各个生命周期上绑定有预设的功能通过插件可以自定义其他功能
!-- 自定义插件 --
buildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-source-plugin/artifactIdversion2.2.1/versionexecutionsexecutiongoals!-- 可以多个构建包 web项目是war--goaljar/goalgoaltest-jar/goal/goals!-- 生命流程 --phasegenerate-test-resources/phase/execution/executions/plugin/plugins
/build