如何在SBT中发布之前检查工件是否存在

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在SBT中发布之前检查工件是否存在相关的知识,希望对你有一定的参考价值。

我正在为SBT项目设置构建,如果SBT可以在尝试上传(到Artifactory)之前检查是否存在具有相同名称/版本的工件(特别是jar),并且会失败只有当该工件既存在又与本地构建的工件不同时。

我现在最好的解决方案是让publish依赖于publishLocal,如果常春藤缓存中的skip in publish := true文件与已经上传的文件匹配,则制作.sha1。然而,手动下载该文件并找到本地文件感觉非常hacky,我仍然不知道如何计算时间。另外,在skip in publish运行之后,实际上可以设置publishLocal吗?

如果有更好的方法,请填写我!

答案

我到目前为止最吸引人的解决方案是使用

publishTo := Some(Resolver.file("file", file("dist"))

然后手动比较校验和并使用curl或python的requests模块在SBT之外有条件地发布。

以上是关于如何在SBT中发布之前检查工件是否存在的主要内容,如果未能解决你的问题,请参考以下文章

如何使 sbt 将非 Java 源包含到已发布的工件中?

如何在sbt 1.0.x中发布自定义工件

scala 参考 sbt 项目版本

如何根据本地 ivy 文件检查 Artifactory 中是不是存在工件

SBT 与 Maven Central - 在工件 url 中摆脱 Scala 版本

sbt update 没有解析存储库中的最新工件