2013-02-06 30 views
3

在SBT插件中,我試圖訪問子項目的託管資源。SBT:訪問子項目的管理資源?

這裏是構建文件:

import sbt._ 
import Keys._ 
import play.Project._ 

object ApplicationBuild extends Build { 
    val appName   = "demo" 
    val appVersion  = "1.0-SNAPSHOT" 
    val appDependencies = Seq(
    "org.jruby" % "jruby-complete" % "1.7.1" 
) 

    val widgets = play.Project("widgets", appVersion, appDependencies, path = file("widgets")) 
    val main = play.Project(appName, appVersion, appDependencies, path = file("demo")) 
    .dependsOn(widgets) 

} 

我在plugins.sbt定義的SBT插件工作。

現在,我需要父項目(演示)的編制過程中從子項目(小工具)使用的資源文件。

到目前爲止,我已經到了最接近的是buildDependencies設置關鍵 - 但我只得到ProjectRef對象,唯一的信息是建基地和項目ID。我無法找到到該項目的資源目錄的方法。

回答

0

不幸的是我不相信這是可能的。我嘗試類似的東西,但發現該文檔中的以下內容:

注:在運行時,所有的所有插件構建的類加載器用於建立一個獨立的,父類加載器加載。這意味着插件不會看到生成定義類或資源

參見:SBT Plugins

+1

該帖指的是可從插件類裝載器類和資源。這意味着'Class.forName(...,getClass.getClassLoader)'和'getClass.getClassLoader.getResource(...)'。另外,它只是談論爲構建定義定義的類和資源。也就是'project /'中的那個,而不是主項目。 一個插件仍然可以使用設置/任務像往常一樣獲得相應項目的資源和類'File's。 –