zoukankan      html  css  js  c++  java
  • 【Maven】Maven之使用maven快照版本机制进行多项目依赖开发

      Maven的快照版本机制就是为了解决多项目依赖开发存在频繁更改maven依赖版本的问题。比如模块B依赖模块A,只需要将模块A的版本设定为0.0.1-SNAPSHOT,然后发布到私服中,在发布的过程中,Maven会自动为构件打上时间戳。比如0.0.1-20191214.221414-13就表示2019年12月14日22点14分14秒的第13次快照。有了该时间戳,Maven就能随时找到仓库中该构件0.0.1-SNAP-SHOT版本最新的文件。这时,模块B配置对于模块A的0.0.1-SNAPSHOT版本的依赖,当构建模块B的时候,Maven会自动从仓库中检查模块A的0.0.1-SNAPSHOT的最新构件,当发现有更新时便进行下载。默认情况下,Maven每天检查一次更新(由仓库配置的updatePolicy控制)
    ,用户也可以使用命令行-U参数强制让Maven检查更新,如mvn clean install-U。 
    <snapshots>
        <enabled>true</enabled>
        <updatePolicy>daily</updatePolicy>
        <checksumPolicy>ignore</checksumPolicy>
    </snapshots>
        元素updatePolicy用来配置Maven从远程仓库检查更新的频率,默认的值是daily,表示Maven每天检查一次。其他可用的值包括:never——从不检查更新;always——每次构建都检查更新;in-terval:X——每隔X分钟检查一次更新(X为任意整数)。
        元素checksumPolicy用来配置Maven检查检验和文件的策略。当构件被部署到Maven仓库中时,会同时部署对应的校验和文件。在下载构件的时候,Maven会验证校验和文件,如果校验和验证失败,怎么办?当checksumPolicy的值为默认的warn时,Maven会在执行构建时输出警告信息,其他可用的值包括:fail——Maven遇到校验和错误就让构建失败;ignore——使Maven完全忽略校验和错误。

      基于快照版本机制,模块A在构建成功之后才能将构件部署至仓库,而模块B可以完全不用考虑模块A的构建,并且模块B能确保随时得到模块A的最新可用的快照构件,而这一切都不需要额外的手工操作。
          当项目经过完善的测试后需要发布的时候,就应该将快照版本更改为发布版本。例如,将0.0.1-SNAPSHOT更改为0.0.1,表示该版本已经稳定,且只对应了唯一的构件。相比之下,0.0.1-SNAPSHOT往往对应了大量的带有不同时间戳的构件,这也决定了其不稳定性。
          快照版本只应该在组织内部的项目或模块间依赖使用,因为这时,组织对于这些快照版本的依赖具有完全的理解及控制权。项目不应该依赖于任何组织外部的快照版本依赖,由于快照版本的不稳定性,这样的依赖会造成潜在的危险。也就是说,即使项目构建今天是成功的,由于外部的快照版本依赖实际对应的构件随时可能变化,项目的构建就可能由于这些外部的不受控制的因素而失败。 
  • 相关阅读:
    flutter添加启动图及设置启动时间
    flutter中通过循环渲染组件
    flutter学习资料汇总
    flutter中显现登录页面成功后跳转的方法
    flutter 常用视图组件
    mpvue学习笔记
    按钮放大动画效果
    一位练习时长两年半的内网渗透练习生
    Kali系统中20个超好用黑客渗透工具,你知道几个?
    渗透测试之三内网跳板
  • 原文地址:https://www.cnblogs.com/756623607-zhang/p/12182379.html
Copyright © 2011-2022 走看看