是否可以引用具有不同SBT版本的项目?

时间:2011-08-25 20:07:58

标签: scala dependencies sbt

我有my project(仅用于sbt实验),它基于sbt 0.10。而another我想用作依赖项。这是基于0.7的基础。

目前我正在尝试使用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]              ^

......等等。

我可以以某种方式引用第二个项目,这样就可以用一个命令来bild和/或运行我的项目吗?

1 个答案:

答案 0 :(得分:3)

仅当两个项目都使用SBT 0.10时,才支持SBT跨项目引用。但是你可以使用发布和工件,并通过Ivy从下游项目中依赖它。

在第一个项目中发出publish-local命令,将代码打包到JAR中,并将其写入~/.ivy2/local/org.abc.def/...

在SBT 0.10项目中,添加以下设置:

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