Maven部署:如何获取snapsnot版本
是否有一种方法可以捕获实际的快照版本并将其输出到文件Maven部署:如何获取snapsnot版本,maven,maven-3,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映像中并部署它。正如khmarbaise所建议的,您可以从Maven扩展获取快照信息,例如记录时间戳,这也会给您提供
[INFO] Uploading to nexus: https://xxxx/repository/xxx/xxx/0.0.1-SNAPSHOT/xxx-0.0.1-2
0180809.182425-2.pom
我可以在控制台输出中看到它,但我正在寻找一种可靠的方法来提取它并将其用于某些后期处理,例如,将其组装到docker映像中并部署它。正如khmarbaise所建议的,您可以从Maven扩展获取快照信息,例如记录时间戳,这也会给您提供一个很好的近似值,因为通常快照ID是基于时间戳的
由于快照通常不会无限期地保留在nexus中,因此在快照的可跟踪性方面,您需要谨慎对待快照的价值。如果您希望跟踪docker映像中的代码,而docker映像本身使用的是最新的/snapshot标记,那么您可能会在最后一次git提交()中找到更多的值。如果图像将有自己的专用标记,那么建议在源代码中也创建相应的标记 这在构建过程中很难实现,因为部署插件使用部署的时间戳来对工件进行版本化,并且除了在日志中之外,它不会共享该信息。这意味着您在构建过程中捕获的任何时间戳都将在该时间戳之前,因此不适合 要解决此问题,您需要解析命令输出或使用外部工具:
- 使用khmarbais(如@Ryan Dawson所述)
- 从Nexus读取包含最新快照信息的
maven元数据
- 搜索Nexus是否有公开该信息的api(我使用的是Artifactory,因此我不是Nexus的专家)