Maven Deploy:如何获取snapsnot版本

时间:2018-08-09 18:34:01

标签: maven maven-3

有没有一种方法可以捕获实际的快照版本并将其输出到文件?

[INFO] Uploading to nexus: https://xxxx/repository/xxx/xxx/0.0.1-SNAPSHOT/xxx-0.0.1-2
0180809.182425-2.pom

我可以在控制台输出中看到它,但是我正在寻找一种可靠的方法来提取它并将其用于某些后期处理,例如,将其组装在docker映像中并进行部署。

2 个答案:

答案 0 :(得分:0)

正如khmarbaise所建议的那样,您可以从Maven扩展名(例如https://github.com/khmarbaise/deployment-recorder-extension)中获取快照信息。记录时间戳也可以为您提供一个很好的近似值,因为通常快照ID是基于时间戳的。

由于为快照提供的可追溯性价值通常要无限期地保留在快照中,因此请务必谨慎。如果要查找本身使用最新/快照标记的docker映像中的代码,则可能会在上一次git commit(https://github.com/ktoso/maven-git-commit-id-plugin)中找到更多值。如果图像将具有其自己的专用标签,则建议在源代码中也创建一个相应的标签。

答案 1 :(得分:0)

这在构建过程中很难实现,因为deploy-plugin使用部署的时间戳来对工件进行版本控制,并且除了日志之外,它将不共享该信息。这意味着您在构建过程中捕获的任何时间戳都将在该时间戳之前,因此不适用。

要解决此问题,您需要解析命令输出或使用外部工具:

  • 使用khmarbais的Deployment recorder(如@Ryan Dawson所述)
  • 从Nexus读取maven-metadata,其中包含最新的快照信息
  • 搜索Nexus是否具有公开该信息的api(我使用的是Artifactory,因此不是Nexus的专家)