Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache Maven快照“;生命周期;_Apache_Maven_Snapshot - Fatal编程技术网

Apache Maven快照“;生命周期;

Apache Maven快照“;生命周期;,apache,maven,snapshot,Apache,Maven,Snapshot,以下是我目前对Maven如何处理依赖关系的理解 当一个依赖项在Maven上工作时,Maven会将“-SNAPSHOT”附加到版本的末尾。ex)1.1.1-快照。这些快照将上载到专门负责快照的远程存储库。同一个远程存储库中有一个用于发布包版本的部分。现在,当项目更新了依赖项时,Maven会将包的最新版本拉入本地存储库。根据快照上的时间戳,仅更新快照。如果Maven撤销了一个发布版本(ex:1.1.0),它将永远不会使用当前版本寻找另一个包 现在我的问题是: 我的理解有哪些缺陷?我是否遗漏了一个概

以下是我目前对Maven如何处理依赖关系的理解

当一个依赖项在Maven上工作时,Maven会将“-SNAPSHOT”附加到版本的末尾。ex)1.1.1-快照。这些快照将上载到专门负责快照的远程存储库。同一个远程存储库中有一个用于发布包版本的部分。现在,当项目更新了依赖项时,Maven会将包的最新版本拉入本地存储库。根据快照上的时间戳,仅更新快照。如果Maven撤销了一个发布版本(ex:1.1.0),它将永远不会使用当前版本寻找另一个包

现在我的问题是:

  • 我的理解有哪些缺陷?我是否遗漏了一个概念性的部分
  • 当包从快照移动到发布版本时,如何更新pom.xml以反映包的发布版本?这是一个手动过程吗
  • 最后,如果发布了一个包,我们将使用上面的示例1.1.1发布。是否创建了1.1.2-SNAPSHOT或1.2.0-SNAPSHOT,这是将在poms中更新的版本

快照当前处于开发版本中,可能不稳定

我们是仍然使用svn的老式公司:

  • 开发正在主干中进行,pom文件中的版本是快照(我们依赖于一些具有固定版本的开源库,我们会在新版本发布后立即更新它们,我们对切换很有信心)
  • 一旦我们即将发布,我们将分支主干并将pom中的版本更改为相应的固定版本(一些公司可以用后缀-rc标记它们)
  • 发布(使用-rc的公司将pom中的版本更改为固定版本)
  • 请看一下发布maven插件以跳过手动版本更改

    我希望这能回答你的一些问题

    关于版本控制的答案-这取决于。请在此处阅读更多信息:


    第三方依赖关系如何?是否会有这些的快照,或者这些总是发布的版本?其次,任何欠开发的东西都会有快照,只有在创建分支时,快照才会成为发布版本。作为一个总是在主分支上工作的开发人员,我通常不会在我的pom中看到我自己的.jar的发布版本?通常您使用发布的(稳定的)第三方依赖项。但是,如果您正在与诺基亚合作,并且集成了一些新的服务,则可能是您有快照依赖关系。但通常快照依赖关系不会从公司的内部网中消失。