2016-08-21 31 views
1

當我嘗試使用scala.io.source.fromFile嘗試從根項目讀取文件而不是從每個單獨的子項目讀取文件時,我有多個子項目的sbt構建。這是我在某些情況下需要的,但在其他情況下我想使用根資源。scala.io.source.fromFile使用sbt從根資源文件夾中讀取子項目

什麼是從子項目中閱讀子項目和根資源文件夾在SBT子項目中的地道方式?

+0

以下答案是否有幫助?如果您有任何反饋,我可以嘗試讓它更有幫助。 – marios

回答

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 
    ... 
} 

您可以ThisBuild替代alpha等,如果你想獲得根項目資源目錄。

+0

但是如何找到一些資源。它看起來像文件是唯一有問題的。從子項目資源中正確選擇應用程序配置和logback。 – user3139545

+0

你能告訴我那個問題在哪裏編碼?它是在項目的設置還是外部?如果你告訴我你有什麼,我可以幫助你。 – marios

相關問題