我有一个包含多个子项目的sbt构建,当尝试使用scala.io.source.fromFile
它时会尝试从根项目而不是从每个子项目读取文件。在某些情况下这是我需要的,但在其他情况下,我想使用根资源。
从带有子项目的SBT中的子项目和根资源文件夹中读取的惯用方式是什么?
这取决于您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
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句