如何做好网站推广优化百度站长平台论坛
如何做好网站推广优化,百度站长平台论坛,上海关键词排名优化公司,仿静态网站maven定义
Maven 最核心、最基础的两个功能#xff08;依赖管理和项目构建#xff09;。
作为「项目工具」#xff1a;Maven 是 Java 项目的 “标准化流水线”#xff0c;定义了从源码到打包的所有流程#xff0c;确保所有人按同一规则构建项目#xff1b; 作为「依赖管…maven定义Maven 最核心、最基础的两个功能依赖管理和项目构建。作为「项目工具」Maven 是 Java 项目的 “标准化流水线”定义了从源码到打包的所有流程确保所有人按同一规则构建项目 作为「依赖管理工具」Maven 是 Java 项目的 “自动管家”负责找包、下包、管版本、解冲突让开发者无需关心依赖的底层细节。Maven 中 JAR 包的核心分类按用途 业务依赖 JAR支撑项目运行 / 测试第三方 JAR、其他项目产物 JAR 插件依赖 JAR支撑 Maven 构建过程仅构建时用不参与项目运行maven的作用1. 标准化的项目结构这是 Maven 最伟大的贡献之一甚至比依赖管理更重要。现状在没有 Maven 时每个人项目的目录结构都不一样src放哪lib放哪配置文件放哪。新人接手项目首先要花半天时间找代码。Maven 的作用它强制规定了一套标准目录结构如src/main/java,src/test/resources等。价值任何熟悉 Maven 的人拿到任何 Maven 项目无需看文档就知道代码在哪、测试代码在哪、配置文件在哪。这极大地降低了团队协作成本。2.传递性依赖管理自动传递引入 AMaven 自动帮你把 B 和 C 都下载下来。冲突解决Maven 有严格的“最短路径优先”和“声明优先”策略来解决版本冲突虽然有时候需要人工干预但它提供了机制。范围控制可以指定依赖只在编译时有效provided如 Servlet API还是只在测试时有效test如 JUnit避免打入最终包中。3.统一的生命周期Maven 将构建过程标准化为三个主要阶段每个阶段包含多个插件执行点Clean清理旧构建。Default (Build)验证 - 编译 - 测试 - 打包 - 集成测试 - 验证 - 安装 - 部署。Site生成项目站点文档。价值无论项目多大开发人员只需要记住几个命令mvn clean install,mvn test不需要关心底层是调用了javac还是jar命令也不需要维护复杂的 shell 脚本。CI/CD持续集成工具如 Jenkins, GitLab CI也是基于这套标准生命周期来工作的。4. 多模块项目管理这是企业级开发必不可少的功能。场景大型系统通常拆分为common(公共库),dao(数据层),service(业务层),web(表现层) 等多个子模块。Maven 的作用通过父 POM (Parent POM) 统一管理所有子模块的版本、依赖和插件配置。子模块之间可以互相引用Maven 会自动处理构建顺序先编译 common再编译 dao...。价值避免了手动管理多个项目间的引用关系实现了“一处修改版本全局生效”。5.中央仓库与生态体系作用Maven 背后有一个庞大的中央仓库Maven Central几乎所有开源 Java 库都在上面。价值开发者不需要去各个官网下载 jar 包只需在pom.xml中写几行坐标GroupId, ArtifactId, VersionMaven 自动下载。同时私有仓库如 Nexus, Artifactory允许公司内部搭建自己的仓库管理内部 jar 包和代理外部包保障安全和速度。讨论理解目录结构为什么src/main/java和src/test/java要分开深入依赖机制什么是scope(compile, provided, runtime, test)?如何解决依赖冲突使用mvn dependency:tree命令查看树状图。熟悉生命周期mvn clean,mvn compile,mvn test,mvn package,mvn install,mvn deploy分别做了什么多模块构建尝试创建一个父子工程理解和标签的作用。插件机制明白 Maven 本身只是个框架具体干活编译、打包、生成文档的都是插件如maven-compiler-plugin,maven-surefire-plugin。maven安装目录结构bin 目录 该目录包含 Maven 的可执行脚本文件是 Maven 命令的入口。 例如在 Windows 系统中有 mvn.cmd、mvnDebug.cmd 等脚本 通过这些脚本你可以在命令行中执行 mvn clean、mvn install 等 Maven 命令完成项目构建、依赖管理等操作。boot 目录 该目录存放 Maven 的启动器依赖核心是 plexus-classworlds 相关的 jar 包。 plexus-classworlds 是一个类加载框架Maven 借助它来实现自定义的类加载机制从而启动 Maven 运行时环境。conf 目录 该目录包含 Maven 的全局配置文件最核心的是 settings.xml。 settings.xml 用于配置 Maven 的全局行为比如 指定本地仓库的路径即依赖包本地存储的位置 配置远程镜像仓库如阿里云镜像用于加速依赖下载 设置代理、认证信息等。lib 目录 该目录包含 Maven 运行所需的所有依赖库jar 包。maven环境变量设置一、前提配置 JAVA_HOME Maven 依赖 Java 运行环境因此必须先配置 JAVA_HOME指向已安装的 JDK 目录如 Java 17 的安装路径。 二、配置 Maven 自身的环境变量MAVEN_HOME 与 Path 三、测试环境配置结果 打开新的命令提示符CMD输入 mvn -v 并回车。若输出 Maven 版本、Java 版本等信息说明配置成功。 通过以上步骤Maven 就能在系统中全局可用无论是命令行执行 Maven 命令还是在 IDE如 IntelliJ IDEA中集成 Maven都能正常工作。配置阿里云镜像1、Maven 的中央仓库Maven Central的主服务器位于美国。在中国大陆直接连接美国的服务器受到跨国带宽限制、网络波动以及防火墙GFW的影响下载速度往往只有几 KB/s甚至经常连接超时Connection Timeout。阿里云在国内拥有多个数据中心提供了专门针对国内网络优化的 Maven 镜像站。2、配置步骤1创建一个H:\mymavenlocation\repository作为我们maven的本地仓库不然它会默认放在C:\Users\陈晓东下。2然后在H:\mymavenlocation\apache-maven-3.9.11-bin\apache-maven-3.9.11\conf\setting.xml文件中配置localRepositoryH:\mymavenlocation\repository/localRepository3打开 settings.xml 文件在 mirrors 标签内添加阿里云中央仓库镜像的配置 xml 3、验证配置 配置完成后打开新的命令行窗口执行 mvn help:system 命令。Maven 会尝试下载依赖此时观察日志中依赖的下载地址若显示为 https://maven.aliyun.com/...则说明镜像配置成功。!-- 阿里云中央仓库镜像 -- mirror !-- 镜像唯一标识 -- idnexus-aliyun/id !-- 镜像替代的中央仓库central 表示替代官方中央仓库 -- mirrorOfcentral/mirrorOf !-- 镜像名称 -- nameNexus aliyun/name !-- 镜像地址阿里云 Maven 公共仓库 -- urlhttps://maven.aliyun.com/repository/public/url /mirror下载资源然后分享了maven仓库的地址以及在 mvnrepository.com 下载坐标的步骤我们先分享maven仓库的地址https://mvnrepository.com/二、在 mvnrepository.com 下载坐标的步骤1、搜索目标依赖 打开网站 https://mvnrepository.com/在顶部搜索框输入依赖名称如 Eclipse Collections、druid点击搜索图标。2、选择匹配的依赖 在搜索结果中找到与需 在搜索结果中找到与需求匹配的依赖通过 groupId 和 artifactId 确认如 org.eclipse.collections » eclipse-collections点击进入详情页。 3、选择版本号 进入依赖详情页后会显示所有可用版本按时间排序最新版本通常在顶部根据项目兼容性选择版本如 12.0.0.M21点击版本号。4、复制坐标配置代码粘贴到项目 pom.xml 中 保存文件后Maven 会自动从远程仓库下载该依赖到本地仓库 进入依赖详情页后会显示所有可用版本按时间排序最新版本通常在顶部根据项目兼容性选择版本如 12.0.0.M21点击版本号。仓库仓库用于存储资源包含各种jar包 Maven 仓库分为本地仓库和远程仓库两大类远程仓库又细分为中央仓库和私服。本地仓库 定义是你自己电脑上的一个目录用于存储从远程仓库下载的资源也可存储你本地项目构建生成的构件如自己开发的 jar 包。 作用当项目需要依赖资源时Maven 会先从本地仓库查找若找不到再去远程仓库下载避免重复下载提升构建效率。 配置可通过 Maven 配置文件 settings.xml 中的 localRepository 标签指定路径如 D:/Java/maven-repository。远程仓库 1)定义位于远程服务器上的仓库为本地仓库提供资源补充。 2)中央仓库由 Maven 官方团队维护是开源资源的 “总库”存储了几乎所有公开的开源依赖如常见的框架、工具类库。默认情况下Maven 会自动连接中央仓库下载资源。3)私服由企业或团队在内部搭建的私有远程仓库通常从中央仓库同步开源资源同时存储企业内部的私有资源如自主研发的 jar 包、购买的商业版权库。仓库的工作流程结合图示理解当项目通过 Maven 构建需要依赖时流程如下 Maven 先检查本地仓库若找到所需资源直接使用。 若本地仓库没有Maven 会连接私服若配置了私服从私服查找若私服有下载到本地仓库后使用。 若私服也没有Maven 会连接中央仓库下载资源到本地仓库后使用。maven坐标(GAVC)Maven工程的GAVP指的是 Group、Artifact、Version、Packaging。这是 Maven 项目的基本坐标,用于唯一标识和定位项目。格式为 :groupId:artifactId:version(:classifier)各元素作用如下 1groupId组织 / 项目的唯一标识通常用域名倒写如公司域名 com.alibaba、开源组织 org.eclipse避免同名冲突。 2artifactId具体项目或模块的名称如 druid 连接池、eclipse-collections 集合框架是组织内部的唯一标识。 3version资源版本号格式通常为 主版本.次版本.修订号如 1.0.0快照版本会加 -SNAPSHOT如 2.0.0-SNAPSHOT。 4classifier可选用于区分同一版本的不同变体如 sources源码包、javadoc文档包、android安卓适配包。注意packaging打包类型如 jar/war/pom不是坐标元素它仅影响项目构建逻辑它会告诉 Maven 这个项目该怎么编译、怎么打包生成 .jar 还是 .war以及作为依赖时被引用时的默认文件类型。dependency groupIdcom.google.guava/groupId artifactIdguava/artifactId version33.0.0-jre/version !-- classifier 和 packaging 通常不直接写在 dependency 标签里除非需要特殊指定 -- !-- 如果我们需要它的源码包会加上 classifier -- !-- classifiersources/classifier -- !-- typejar/type (默认就是 jar通常省略) -- /dependency总结坐标定位置Packaging 定行为Classifier 定变种。总结1、本文首先介绍了mave的作用标准化的项目管理传递性依赖管理统一的生命周期多模块项目管理中央仓库和生态体系进行论证然后通过几个问题对此知识点进行考验2、然后介绍了maven几个安装目录的结构bin目录Maven 命令的入口boot 目录conf 目录包含了如 settings.xml等全局配置文件lib目录包含 Maven 运行所需的所有依赖库jar包3、然后介绍了maven的环境变量设置包括配置环境变量 JAVA_HOMEMAVEN_HOME以及用mvn -v 命令进行验证6、然后分享了maven仓库的地址以及在 mvnrepository.com 下载坐标的步骤7、又介绍了maven配置阿里云镜像的原因追求下载资源的速度配置步骤在settings.xml 文件中操作验证配置的方法8、接着介绍了仓库的概念本地仓库定义作用配置方式远程仓库中央仓库和私服的定义再介绍了下载jar包的工作流程9、又介绍了maven坐标介绍其组成元素groupid组织标识artifactId模块名version资源版本名classifier的定义和格式并拓展了packaging打包类型如 jar/war/pom决定了该项目的编译打包方式以及作为依赖时被引用时的默认文件类型 另下一篇文章我们再详细的来介绍一下maven的最核心作用依赖管理和项目构建。