gpt4 book ai didi

scala - SBT 在程序中包含版本号

转载 作者:行者123 更新时间:2023-12-03 11:37:44 27 4
gpt4 key购买 nike

我希望我正在构建的程序能够在运行时报告自己的版本(例如 scala myprog.jar --version )。传统上,在 maven 项目中,我会使用资源过滤(pom.xml -> file.properties -> 在运行时读取值)。我知道有 sbt-filter-plugin来模拟这个功能,但我很好奇在 SBT 中是否有更标准/首选/聪明的方法来做到这一点。

tl;dr 我怎样才能读取 build.sbt 中定义的版本号在运行时?

最佳答案

更新...

https://github.com/ritschwumm/xsbt-reflect (上面提到的)已经过时了,但是有这个很酷的 SBT 发布工具,可以自动管理版本等等:https://github.com/sbt/sbt-release .

或者,如果您想要快速修复,您可以从 list 中获取版本,如下所示:

val version: String = getClass.getPackage.getImplementationVersion

此值将等于 version在您的项目中设置您在 build.sbt 中设置的或 Build.scala .

另一个更新...

Buildinfo SBT 插件可以基于 build.sbt 生成带有版本号的类:
/** This object was generated by sbt-buildinfo. */
case object BuildInfo {
/** The value is "helloworld". */
val name: String = "helloworld"
/** The value is "0.1-SNAPSHOT". */
val version: String = "0.1-SNAPSHOT"
/** The value is "2.10.3". */
val scalaVersion: String = "2.10.3"
/** The value is "0.13.2". */
val sbtVersion: String = "0.13.2"
override val toString: String = "name: %s, version: %s, scalaVersion: %s, sbtVersion: %s" format (name, version, scalaVersion, sbtVersion)
}

在此处查看有关如何启用它的文档: https://github.com/sbt/sbt-buildinfo/ .

关于scala - SBT 在程序中包含版本号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8957025/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com