如何从终端中的 build.sbt 获取值

How to fetch a value from build.sbt in terminal

任何人都可以建议,通过终端如何读取 build.sbt 中存在的值(我想读取一个名为 'version' 的变量)?我在互联网上找不到任何解决方案。谢谢

要从 build.sbt 的第 ThisBuild / version := "1.0.0" 行获取值 1.0.0,您可以使用以下 shell 命令。

grep "ThisBuild / version" build.sbt | cut -d\" -f2

sbt v1.3.0 有一个新的 print 命令,它类似于 show 但直接打印到 标准输出 :

sbt --no-colors --error 'print ThisBuild / version'
  • --no-colors 禁用 ANSI 颜色代码
  • --error 将日志记录级别设置为仅报告错误(无 [info][warn] 日志消息)
  • print ThisBuild / version 是实际命令

您可能希望将 ThisBuild 替换为您的项目名称。

如果您有一个多项目并且根项目聚合了任务,那么您可能会得到每个子项目的版本输出。要关闭它,您可以使用 aggregate 设置:

sbt --no-colors --error 'set aggregate := false; print version'

请注意,此命令需要时间,它可能看起来什么也没发生,但它只是静默加载 sbt(因为我们关闭了日志)。