【问题标题】:Maven deploy transaction boundariesMaven 部署事务边界
【发布时间】:2017-10-16 13:06:06
【问题描述】:

存储库管理器如何知道 maven 何时开始部署并完成部署?例如,当执行 mvn deploy 命令时,maven 会上传一堆文件。现在服务器应该如何知道 maven 何时完成所有文件的上传?

我认为包级别的 maven-metadata.xml 文件是最后一个被更新的文件,但意识到并非总是如此。例如 javadocs 在更新到包级别 maven-medata.xml 后得到更新

maven 更新存储库的顺序是否有任何规范?

【问题讨论】:

  • 为什么重要?
  • 是否有任何 RFC 用于 maven 客户端与 maven repo 的交互?就像我们对 HTTP 等一样?
  • @user93796:你为什么需要这个?

标签: maven maven-metadata


【解决方案1】:

据我所知,没有 RFC。

我对 Maven 及其元数据非常熟悉。我现在不是特别在谈论任何存储库管理器。我只是对它的逻辑进行逆向工程(主要是猜测,还有我将如何实现它;顺便说一下,我正在自己实现一个存储库管理器)。我想邀请 Nexus、Artifactory 和 Archiva 的开发人员也分享他们对这种功能的想法、观点和经验,如果他们当然愿意分享的话。

基本上,存储库管理员会(或可能)做的事情是:

  • 在部署工件(及其所有随附文件)时,相应的格式或(布局提供程序 - Maven、Nuget、NPM)将触发工件的基本路径+版本 (org/foo/bar/1.0) 的新事务,并带有不活动宽限期
  • 当工件的文件部署在该版本的基本路径下时,事务将打开
  • “事务”将在以下情况下自动关闭:
    • 在指定的等待期内路径下没有活动
    • 或者上传/更新一个可识别的最后一个文件(对于 Maven,通常是 maven-metadata.xml

@user93796:我看到你最近问了很多关于 Maven 和 Maven 元数据的问题。如果您想就该主题进行更详细的聊天,请随时通过电子邮件 (my SO username @ gmail.com) 与我联系。 :)

【讨论】:

    猜你喜欢
    • 2015-08-18
    • 1970-01-01
    • 2019-04-18
    • 2017-03-26
    • 2017-05-22
    • 2016-06-05
    • 2018-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多