我通过build.sbt中的以下代码创建了一个托管资源:
resourceGenerators in Compile <+=
(resourceManaged in Compile, name, version) map { (dir, n, v) =>
val file = dir / "version"
val contents = Process("git rev-parse HEAD").lines.head
IO.write(file, contents)
Seq(file)
}
我可以在target/scala-2.11/resource_managed/main
我在我的应用程序中提取其内容如下:
val version = getClass.getResource("version")
println(Source.fromURL(version).mkString)
我想知道是否有用于访问资源的Scala类,这比Java getClass.getResource
答案 0 :(得分:1)
正如我在评论中所写,我认为这是正确的方法,Scala中没有其他等效方法。
但是,我建议您查看sbt-buildinfo插件,在您的情况下允许您将版本字符串直接放在合成的Scala对象中。