我有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和/或运行我的项目吗?
答案 0 :(得分:3)
仅当两个项目都使用SBT 0.10时,才支持SBT跨项目引用。但是你可以使用发布和工件,并通过Ivy从下游项目中依赖它。
在第一个项目中发出publish-local
命令,将代码打包到JAR中,并将其写入~/.ivy2/local/org.abc.def/...
。
在SBT 0.10项目中,添加以下设置:
libraryDependencies += "org.abc" %% "def" % "0.1"