簡體   English   中英

如何在Scala程序中訪問sbt托管資源

[英]How to access sbt managed resource in Scala program

我通過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更可取

正如我在評論中所寫,我認為這是正確的方法,而且Scala中沒有其他等效方法。

但是,我建議您查看sbt-buildinfo插件,根據您的情況,該插件將允許您將版本字符串直接放置在合成Scala對象中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM