scala.io.source.fromFile with sbt subProjects从根资源文件夹

时间:2016-08-21 18:24:39

标签: scala sbt

我有一个带有多个子项目的sbt构建,当尝试使用scala.io.source.fromFile时,它尝试从根项目而不是从每个单独的子项目中读取文件。这是我在某些情况下需要的,但在其他情况下我想使用根资源。

使用子项目从SBT中读取子项目和根资源文件夹的惯用方法是什么?

1 个答案:

答案 0 :(得分:2)

这取决于您从哪个范围调用resourceDirectory。以下是使用一个根项目和两个子项目(来自sbt REPL)的构建示例:

> resourceDirectory
[info] alpha/compile:resourceDirectory
[info]  /Users/xyz/sbt-tutorial/sub-projects/sub-a/src/main/resources
[info] beta/compile:resourceDirectory
[info]  /Users/xyz/sbt-tutorial/sub-projects/sub-b/src/main/resources
[info] root/compile:resourceDirectory
[info]  /Users/xyz/sbt-tutorial/sub-projects/src/main/resources

如您所见,调用alpha/compile:resourceDirectory将获得名为alpha的子项目的资源目录。

如果你想要这个sbt DSL表示法,它将是:

myTask := {
   val resDir = (resourceDirectory in (alpha, Compile)).value
   ...
}

如果要获取根项目的资源目录,可以用alpha替换ThisBuild等。