首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maven -如何安装/部署时间戳快照

Maven -如何安装/部署时间戳快照
EN

Stack Overflow用户
提问于 2016-04-10 04:28:34
回答 2查看 1.9K关注 0票数 2

环境:Maven 3.3.9

嗨,

我有一个maven jar模块,版本为1.0-快照。当我执行mvn install时,安装到本地存储库(~/.m2/repository)中的jar没有时间戳。我同意,这不是一个常见的场景,您希望在您的~/.m2/repository回购中有时间戳罐子。但还是有几个问题:

  1. mvn install会自动追加时间戳吗?寻找一些配置方式,而不是在最终名称中使用${timestamp}
  2. 自动时间戳机制是否适用于mvn deploy
  3. 有没有办法告诉maven将~/.m2/repository本身用于mvn deploy

谢谢,

拉凯什

EN

回答 2

Stack Overflow用户

发布于 2016-04-10 10:22:22

mvn install只会将项目放入本地缓存,这意味着它可以用于计算机上的其他项目。

mvn deploy将把工件部署到远程存储库中,而远程存储库通常是企业存储库管理器。

SNAPSHOT的情况下,这意味着这个工件还没有最后确定,并且处于开发人员之下。这意味着您可以创建几个相同版本的状态,比如1.0.0-SNAPSHOT。在部署到存储库管理器期间创建的时间戳旨在使不同的工件可用于开发。如果您想使用快照的最新版本,可以通过-U选项进行控制。

当您做好准备之后,您就可以创建一个所谓的发行版,它将把版本设置为类似于1.0.0 (没有快照)的版本,这个版本也被部署到一个不可变的发行存储库中。

此外,在本地缓存$HOME/.m2/repository中使用时间戳并不真正有意义,因为您可以控制何时在本地安装工件,而不是其他人,而且您应该防止使用finalName更改,因为这只针对您的target文件夹,而不是针对本地缓存。最后,对mvn deploy使用本地缓存是没有意义的,因为这背后的想法是什么?最好是开始使用存储库管理器,比如Nexus、Artifactory或Archiva,特别是如果您是在公司环境中工作的话。

票数 1
EN

Stack Overflow用户

发布于 2016-04-10 12:02:29

除了@khmarbaise的答复外,请参阅下列参考资料:

  • Maven /知识库简介: 严格来说,只有两种类型的存储库:本地存储库和远程存储库。本地存储库是指您自己安装的一个副本,它是远程下载的缓存,还包含尚未发布的临时构建构件。 远程存储库是指任何其他类型的存储库.
  • Maven:完整的参考,15.2.8。存储库: 存储库是项目的远程集合,Maven从这些项目中填充构建系统的本地存储库。
  • 存储库-快照处理读到: 该文档的目标是Maven 2.0 alpha 1,它只用于历史参考,并被更新并集成到Maven文档中。

但我没有找到任何最新的文档,其中已经集成了。(@khmarbaise?)

由于磁盘空间保存的原因,在安装本地存储库时不会创建时间戳文件。然而,当一个快照被解析和下载时,它会用它的时间戳版本号保存(例如: 0.15-20050401.150432-2)。

  • 理解Maven版本号
  • Maven依赖解决方案--一个存储库透视图

长话短说:

可以将相同的快照版本部署到来自不同主机的远程存储库中,因此必须以某种方式区分它们。它们由时间戳(和一个内置号)来区分。

只有当Maven解析并因此从远程下载时,本地存储库中才会有带有时间戳(和版本号)的工件。

所以:

  1. 不是的。
  2. 是。
  3. 会破坏Maven处理本地和远程的存储库。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36525794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档