【发布时间】:2019-03-21 23:58:15
【问题描述】:
背景:我们正在研究从数据生成模型的 Spark 管道。标准数据科学的东西。我们将在各个地方使用这些模型,并进行 A/B 测试以确保与旧模型相同。我想将数据添加到我们所有输出的模型中,告诉我们哪个版本的代码生成了模型,但不仅仅是有一个版本,我想包含有关 .jar 的唯一信息。编译时间、编译的计算机、用户名等。让我们也可以对开发人员在发布过程之外编译的内容进行 A/B 测试。
SBT 中是否有一种好方法可以在编译时计算这些内容并将其嵌入到程序中?
【问题讨论】:
-
您可以使用任何您想要的信息生成任何文件:sbt doc。事实上,这个问题似乎有点太宽泛了。
-
也可以看看sbt-buildinfo。
-
@AndreyTyukin 你能发布你的 cmets 作为答案吗?
-
@laughedelic 关于
sbt-buildinfo的评论并不是一个真正的答案,它只是一个模糊的建议,即OP 可以在执行类似操作的编译器插件的代码中寻求一些灵感。我以前做过类似的事情,所以我很确定它可以工作,但我目前没有时间/精力深入研究 SBT 文档以刷新它的工作原理,与链接帖子中的 Eugene Yokota 不同,我我对 SBT 不够熟悉,无法在我的脑海中写下一个通用的 sbt 插件。正如我所说:目前这个问题太宽泛,因此无法回答。 -
@laughedelic 我也有点怀疑 SBT buildinfo 是否提供有关“编译它的计算机、用户名等”的信息。公平地说,
sbt-buildinfo似乎更加专注。但同样 - 它可能可以完成,但为此,提问者应该更具体地说明“所有这些东西”的含义。