2013-02-26 143 views
2

我似乎無法正確配置SBT以解決我的項目依賴的RootProject傳遞依賴性問題。問題似乎是解決者。我已經能夠用一個非常簡單的結構複製它。請參閱下面的代碼。sbt未解決的傳遞依賴

內部公共/我可以運行sbt console它將解決依賴關係,我可以使用它。但是,在proj /相同的命令失敗。與UNRESOLVED DEPENDENCIES。但我的edofic snapshots解析器沒有在嘗試解析器中列出。不知何故,它沒有拿起。如果我手動將解析器添加到Build.scala,但它會失敗傳遞依賴的目的。

├── common 
│   └── build.sbt 
└── proj 
    └── project 
     └── Build.scala 

通用/ build.sbt

scalaVersion := "2.10.0" 

resolvers += "edofic snapshots" at "http://edofic.github.com/repository/snapshots" 

libraryDependencies += "com.edofic" % "reactivemacros_2.10.0" % "0.1-SNAPSHOT" 

凸出/項目/ Build.scala

import sbt._ 
import Keys._ 

object BarBuild extends Build { 
    val common = RootProject(file("../common")) 

    val main = Project(id = "main", base = file(".")).settings(
    scalaVersion := "2.10.0" 
) dependsOn common 
} 

只是爲了把事情說清楚:我想有單獨的SBT配置對於「通用」,我不想在本地發佈它 - 我想讓SBT在需要時處理增量重新編譯。 RootProject是這項工作的錯誤工具嗎?

回答

0

這裏是爲我工作的解決方案,但它可能它可能會破壞別的東西:
凸出/項目/ Build.scala添加一個「代表」的說法你的項目定義是這樣的:

val main = Project(id = "main", base = file("."), 
        delegates = common :: Nil).settings(
    scalaVersion := "2.10.0" 
) dependsOn common 

我認爲這可能會導致您的「主」項目從「普通」項目中獲取所有配置,因此我不確定可能存在哪些副作用。由於這個原因,我爲我的項目選擇的解決方案是有一個「配置」項目,它具有所有項目的通用配置,並在該項目中使用「委託」,因此我可以控制正在拾取的配置。

相關問題