2011-08-25 116 views
1

我有my project(僅適用於sbt實驗),它基於sbt 0.10。而another我想用作依賴項。這是基於0.7的。是否可以引用具有不同SBT版本的項目?

目前我正在嘗試使用uri reference將第二個包含到我的項目項目中。但是構建失敗,可能是因爲這些項目中sbt的版本不兼容。錯誤信息是:

[info] Compiling 1 Scala source to /home/zan/.sbt/staging/113d72bca54918c1f033/project/plugins/target/scala-2.8.1.final/classes... 
[error] /home/zan/.sbt/staging/113d72bca54918c1f033/project/plugins/Plugins.scala:1: not found: value sbt 
[error] import sbt._ 
[error]  ^
[error] /home/zan/.sbt/staging/113d72bca54918c1f033/project/plugins/Plugins.scala:3: too many arguments for constructor Object:()java.lang.Object 
[error] class Plugins(info: ProjectInfo) extends PluginDefinition(info) { 
[error]    ^

...等等。

我可以以某種方式引用第二個項目,這樣就可以用一個命令來顯示和/或運行我的項目嗎?

回答

3

僅當兩個項目使用SBT 0.10時才支持SBT交叉項目引用。但是您可以使用發佈和工件,並通過Ivy從下游項目中獲取此信息。

在第一個項目中發出publish-local命令,將代碼打包到JAR中並寫入~/.ivy2/local/org.abc.def/...

在SBT 0.10項目中,添加此設置:

libraryDependencies += "org.abc" %% "def" % "0.1" 
+0

啊...我試過這種方法,但它看起來像0.10和0.7使用不同的存儲庫的佈局,所以他們不能看到部署的工件彼此。這可能是另一個問題,我會盡快重現並單獨提出一個問題。 – CheatEx

相關問題