ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Maven 版本号:SNAPSHOT 与 Release 一文搞懂

Maven 版本号:SNAPSHOT 与 Release 一文搞懂 快照版与发布版的区别在实际开发中项目的版本存在以下两种类型针对其中的区别差异查找了资料做一个简单总结product.advance.version1.0-Releases/product.advance.version product.dto.version0.0.1-SNAPSHOT/product.dto.versionMaven中定义版本号的目的在于将发布的项目进行更好的版本管理。那什么是版本管理呢版本管理是项目整体版本的演变过程管理如从 1.0-SNAPSHOT 到 1.0-Releases 再到 1.1-SNAPSHOT。在 Nexus 仓库中一个仓库一般分为Release仓和SNAPSHOT仓前者存放正式版本后者存放快照版本。如果 pom.xml 文件中指定的版本号带有 “-SNAPSHOT”后缀那么打出的包就是一个快照版本。那么 SNAPSHOT(快照)版和 Releases(发布)版的区别有哪些呢其实这两个版本除了用于区别版本类型的作用外本地获取这些依赖的机制也有所不同。发布版在构建时构建工具会先从本地仓库中拉取相关依赖只有本地仓库不存在的情况才会去远程仓库中拉取。而这种方式在团队开发过程中就可能存在冲突如果两个开发人员A、B同时需要某项目的 1.0-Releases 依赖且都从远程仓库拉取到各自的本地仓库中假设其中A更改了 1.0-Releases 中的某些内容但由于发布版的拉取机制在不更改版本号的前提下B只能从自己本地获取依赖无法获得远程仓库的最新内容。正因为上述原因SNAPSHOT 版就派上了用场快照版的拉取机制是优先去远程仓库获取依赖即使本地仓库已经存在同版本的项目。同时 Maven 针对快照版向远程仓库的查找频率设置四种类型用于兼顾本地仓库的缓存机制always每次都去远程仓库查看是否有更新daily只在第一次的时候查看是否有更新当天的其他时候则不会查看interval允许设置一个分钟为单位的间隔时间never不去远程仓库中查找Mavne的版本号定义约定上面我们了解到快照版和发布版的区别现在我们看下版本号的常规约定主版本.次版本.增量版本-里程碑版本主版本和次版本之间以及次版本和增量版本之间用点号分隔里程碑版本之前用连字号分隔。下面解释每一部分的意义主版本表示了项目的重大架构变更。次版本表示较大范围的功能增加和变化及修复bug。增量版本一般表示重大bug的修复可忽略。里程碑版本指某一个版本的里程碑可忽略。资料来源《Maven实战》第十三章 — 版本管理博主shark1357【版本号中Snapshot的含义】
返回列表