`
liyixing1
  • 浏览: 939432 次
  • 性别: Icon_minigender_1
  • 来自: 江西上饶
社区版块
存档分类
最新评论

版本号规范,镜像版本SNAPSHOT,LATEST 和 RELEASE 版本

阅读更多
如果版本号不遵守maven规范,那么maven在对版本进行排序的时候,无法识别出版本,只能按照字符串排序规则排序。

maven要求版本命名以
主版本.次版本.增量版本-限定版本,其中每个节点都可以抛弃,但至少包含一个节点,如可以为version命名为1

如1.2.3-beta-03

另外对于限定版本号的命名也要注意,当限定版本后面带有版本号的时候,比如
1.2.3-beta-10和1.2.3-beta-3之间,maven无法识别出1.2.3-beta-3<1.2.3-beta-10因为maven对限定版本的处理依然要求是数字才能识别,而beta-xxx会被识别为一个字符串,因此按照字符串排序了。
而为了解决这个问题,可以进行追加0的处理方式,比如
1.2.3-beta-3改成1.2.3-beta-003

LATEST 和 RELEASE 版本
LATEST是指某个特定构件最新的发布版或者快照版(snapshot),最近被部署
到某个特定仓库的构件。RELEASE是指仓库中最后的一个非快照版本。

在Maven 2.0.9之前,Maven会自动将核心插件更新
至LATEST版本。这种行为导致了很多奇怪现象,因为新版本的插件可能会有一些bug,
甚至是行为变更,这往往使得原来的构建失败。当Maven自动更新核心插件的时候,我
们就不能保证构建的重现性,因为插件随时都可能从中央仓库更新至一个新的版本。从Maven 2.0.9开始,Maven从根本上锁住了一组核心插件的版本。非核心插件,或者说没
有在超级POM中指定版本的插件仍然会使用LATEST版本去从仓库获取构件。由于这个原
因,你在构件中使用任何一个自定义非核心插件的时候,都应该显式的指定版本号。

SNAPSHOT
这个事maven的特殊版本号,maven在处理的时候,把SNAPSHOT字符创自动替换成时间
如你在UTC2008年2月7号下午11:08部署了这个版本,Maven就会将这个版本展开
成“1.0-20080207-230803-1”。换句话说,当你发布一个snapshot,你没有发布一个
软件模块,你只是发布了一个特定时间的快照版本。

对于SNAPSHOT功能,网友的一个例子
比如,你的工程要依赖的core版本是 1.0.0 版本,结果这个版本还正处于对方(叫小菜吧)的开发过程中,他利用maven命令mvn install打包成jar,并部署到服务器上,根据pom设定的版本,你顺利下载了依赖包。但小菜后续开发过程,发现了一个致命bug,那么他再操作一次,那么,即使服务器的更新是你需要的,你只能干着急,只能跟小菜吼一声,“你的版本,老子无法更新依赖包,再给我发一个新的版本上去。”小菜一听,好吧,那我把版本升到 1.0.1 版本,你通过update dependencies 下载了这个新版本的jar包。这样的情况,会循环地出现,那么你和小菜有点恼火了,maven就是老鼠钻到风箱里,两头受气,maven想能不能开发一个功能,使双方默认可以上传并打包下载到最新的开发版本,而不用修改版本号,否则开发完成之后,服务器上是一堆的release版本。有了这个思路,maven增加了划时代的功能,snapshot ,这样依赖版本为 1.0.0-SNAPSHOT (注意必须为全大写),当服务器上有更新时,会自动下载到本地,省去了不少、和小菜的沟通时间,也减小了不少由于版本问题带来的编译错误。
分享到:
评论

相关推荐

    baseversion-maven-plugin:从 Maven 项目中提取基本版本号。 例如 1.0.0-SNAPSHOT 的基本版本是 1.0

    如果您的项目在持续交付管道中进行管理并且版本号应包含内部版本号,这将非常有用。 在这种情况下,您必须将项目的基本版本号与内部版本号数字连接起来。 请参阅下面的示例。 用法 mvn org.fred4jupiter.base...

    cda-TRUNK-SNAPSHOT.jar

    SNAPSHOT是快照的意思,项目到一个阶段后,就需要发布一个正式的版本(release版本)。一次正式的发布需要这样一些工作: 在trunk中,更新pom版本从1.0-SNAPSHOT到1.0 对1.0打一个svn tag 针对tag进行mvn deploy,...

    JAVA版jieba 1.0.3-SNAPSHOT最新版本jar包

    JAVA版jieba 1.0.3-SNAPSHOT最新版本jar包。。把它导入idea项目,添加到library和module就可以用啦,导入eclipse项目就更简单了不用我说了吧

    Snapshot v1.41.

    Drive SnapShot 是一款磁盘映像软件,用户可以方便安全的备份、恢复和察看硬盘数据。使用了WindowsNT驱动器技术,支持Windows NT/2000/XP/win7/win8/PE平台,SnapShot为带来了两项新的磁盘映像功能: 1.Snapshot ...

    saiku-query-0.1-SNAPSHOT.jar

    SNAPSHOT是快照的意思,项目到一个阶段后,就需要发布一个正式的版本(release版本)。一次正式的发布需要这样一些工作: 在trunk中,更新pom版本从1.0-SNAPSHOT到1.0 对1.0打一个svn tag 针对tag进行mvn deploy,...

    android-snapshot-publisher,部署Android快照版本的Gradle插件.zip

    android snapshot publisher是一个gradle插件,用于以简单和通用的方式准备android快照版本并将其分发到多个分发源。

    海豚调度,dolphinscheduler-data-quality-dev-SNAPSHOT最新版本3.1.1

    DolphinScheduler(海豚调度) dolphinscheduler-data-quality-dev-SNAPSHOT数据质量jar包添加配置信息:&lt;server-name&gt;/conf/common.propertiesdata-quality.jar.name=dolphinscheduler-data-quality-dev-SNAPSHOT.jar...

    ffmpeg-snapshot.tar.bz2 - 2020-12-2最新版本

    朋友如果发现 curl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 无法下载那就这里下载吧 不知道为什么ffmpeg 访问不了,我特意提高给大家下载

    Drive SnapShot v1.47.zip

    Drive SnapShot是一款专业的磁盘映像软件。软件使用了WindowsNT驱动器技术,支持Windows ...1.Snapshot Backup ——在windows运行时建立磁盘镜像 2.Snapshot View——以友好的方式浏览保存的磁盘镜像 Drive SnapShot

    SnapShot一键恢复 v11.01.01

    snapshot 使用了WindowsNT驱动器技术,支持所有Windows平台,SnapShot为我们带来了两项新的磁盘映像功能:1.Snapshot Backup ——在windows运行时建立磁盘镜像2.Snapshot View——以友好的界面浏览保存的磁盘镜像

    axis包 SNAPSHOT jar包

    axis2.eclipse.codegen.plugin-SNAPSHOT.jar,axis2.eclipse.service.plugin-SNAPSHOT.jar

    Drive SnapShot(磁盘镜像备份工具)v1.42绿色版.rar

    它是一款和GHSOT类似的磁盘映像软件,能够给指定磁盘分区做映像备份,也可以从映像中恢复到指定的分区,可以备份到FTP服务器,给备份文件加上密码保护,能在WIN系统运行时建立映像文件,也可以以友好的方式来浏览...

    JNDIExploit-1.2-SNAPSHOT

    JNDIExploit-1.2-SNAPSHOT

    sqlite-snapshot源码

    sqlite-snapshot最新源码sqlite-snapshot源码sqlite-snapshot源码sqlite-snapshot源码

    android-snapshot-publisher:用于部署Android快照版本的Gradle插件

    android-snapshot-publisher:用于部署Android快照版本的Gradle插件

    saiku-query-0.2-SNAPSHOT.jar

    SNAPSHOT是快照的意思,项目到一个阶段后,就需要发布一个正式的版本(release版本)。一次正式的发布需要这样一些工作: 在trunk中,更新pom版本从1.0-SNAPSHOT到1.0 对1.0打一个svn tag 针对tag进行mvn deploy,...

    snapshot_pod.m

    snapshot_pod.m

    JNDIExploit-1.4-SNAPSHOT.jar

    编译后的JNDIExploit-1.4-SNAPSHOT.jar,可以直接用,1.4版本支持tomcatBypass路由直接上线msf。

    snapshot_blob.bin

    snapshot_blob.bin

Global site tag (gtag.js) - Google Analytics