义乌城市投资建设集团网站,辽宁建设厅官方网站,西安做网站那家公司好,网站开发的技术分类Maven 
Maven是一个Java项目管理和构建工具#xff0c;作用#xff1a;定义#xff08;规范#xff09;项目结构、项目依赖、使用统一的方式自动化构建#xff08;clean、compile#xff09;。 
提供了一套依赖管理机制#xff1a;利用仓库统一管理jar包#xff0c;利用…Maven 
Maven是一个Java项目管理和构建工具作用定义规范项目结构、项目依赖、使用统一的方式自动化构建clean、compile。 
提供了一套依赖管理机制利用仓库统一管理jar包利用依赖传递的特性解决jar包版本冲突问题。 视频教程 总结 
核心掌握目标安装maven安装、环境变量、maven配置文件修改工程创建gav属性理解、IDEA创建工程、项目结构依赖管理依赖添加、依赖传递、版本提取、导入依赖错误解决构建管理构建过程、构建场景、构建周期继承和聚合理解继承和聚合的作用和配置 
所有依赖在父maven项目中管理子maven无需使用版本可选依赖放入;所有依赖的版本号通过管理管理所有子模块 
Maven配置文件 
需要修改的地方如下 
!--  jar包下载本地地址 --
localRepositoryD:\data\maven-repository/localRepository!--  jar包下载仓库 --
mirrorsmirroridnexus-aliyun/idmirrorOfcentral/mirrorOfnameNexus aliyun/nameurlhttp://maven.aliyun.com/nexus/content/groups/public/url/mirrormirroridhuaweicloud/idmirrorOf*/mirrorOfnamehuawei Cloud/nameurlhttps://repo.huaweicloud.com/repository/maven//url/mirrormirroridcentral/idmirrorOfcentral/mirrorOfnameMaven Repository Switchboard/nameurlhttps://repo2.maven.org/maven2//url/mirror/mirrors 
约定大于配置 
pom.xml详解 
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns: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/modelVersion!-- 本工程的坐标信息保证唯一性 --groupIdcom.lywtimer/groupIdartifactIdj-pure/artifactIdversion1.0-SNAPSHOT/version!-- 设置打包方式 默认jar常用warpom --packagingpom/packagingmodulesmodulebackend/modulemoduledemo/module/modules!--通常去设置依赖的版本好处统一管理版本多个jar包使用同一个版本时简化配置${junit.jupiter.version}--propertiesmaven.compiler.source17/maven.compiler.sourcemaven.compiler.target17/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncodingcom.mysql.version8.3.0/com.mysql.versionorg.junit.jupiter.version5.10.2/org.junit.jupiter.version/properties!--通过一个坐标信息去引用jar包去 https://mvnrepository.com/ 中央仓库找需要确认到本地仓库如果出现异常问题可以删掉重新下载。 D:\data\maven-repository\org\junit\jupiter\junit-jupiter-api\5.10.2--!-- 对子工程必须要的依赖放在这里 --dependenciesdependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactIdversion${com.mysql.version}/version/dependency/dependencies!--对子工程不是必须要的依赖放在这里虽然子工程还需要做一次依赖但可以做版本控制--dependencyManagementdependencies!--引用本地的项目需要 install--dependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter-api/artifactIdversion${org.junit.jupiter.version}/version!--手动排除依赖--exclusions!--                exclusion--!--                    groupIdcom.mysql/groupId--!--                    artifactIdmysql-connector-j/artifactId--!--                /exclusion--/exclusions!--依赖范围编译main/java测试main/test运行/打包包含在打的包中test       编译× 测试√  打包×     junitprovided   编译√ 测试√  打包×     servletcompile    编译√ 测试√  打包√     默认runtime    编译× 测试√  打包√     反射、数据库驱动system  provided 不会依赖仓库中的jar包结合systemPath使用已经废弃1.首先 依赖范围建议哪怕所有的范围都设置compile也不影响正常使用2.中央仓库会提供scopeIDEA有自动补全功能3.大多数包都是compile--!--作用访问是 test、provided 就不会传递--scopetest/scope!--是否传递 默认是false会传递--optionalfalse/optional/dependency/dependencies/dependencyManagement
/project 
生命周期 
生命周期会依次执行 clean validate compile test package verify installTest* 的类会在 test 执行的时候被扫描install会下载到本地仓库依赖传递的配置 
#被依赖项目的pom.xmlgroupIdcom.mszlu/groupIdartifactIdtrans/artifactIdversion1.0-SNAPSHOT/versiondependenciesdependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactIdversion8.0.33/version!--作用访问是 test、provided 就不会传递--scopecompile/scope!--是否传递 默认是false会传递--optionaltrue/optional/dependency/dependencies#依赖项目的pom.xml
dependencies!--引用本地的项目需要 install--dependencygroupIdcom.mszlu/groupIdartifactIdtrans/artifactIdversion1.0-SNAPSHOT/version/dependency
/dependencies#如果被依赖项目无法处理通过两种方式可以解除依赖
#引入不一致版本的依赖覆盖
#使用exclusion手动排除 
创建聚合工程 
右键父工程目录 → New → Module → Parent选 None 
!-- 父工程聚合子工程 pom.xml --modulesmodulebackend/modulemoduledemo/module/modules!-- 两个子工程依赖后依赖就会传递 --  
!-- 在父工程中的生命周期方法会在所有管理的模块依次执行 --   
Maven继承 
聚合工程的另外一种体现把依赖统一到父工程中。 
!-- 修改子工程的 pom.xml --
parentgroupIdorg.example/groupIdartifactIdj-pure/artifactIdversion1.0-SNAPSHOT/version
/parent!-- 手动删除重复的配置 --
groupIdorg.example/groupId
version1.0-SNAPSHOT/version