如何在sbt&x27中使用外部依赖关系;scala文件?

如何在sbt&x27中使用外部依赖关系;scala文件?,scala,sbt,Scala,Sbt,这适用于Scala 2.11.1和sbt 0.13.5 假设我有一个具有以下目录结构的Scala/sbt项目: root/ build.sbt src/ .. project/ plugins.sbt build.properties LolUtils.scala 我想使用LolUtils.scala中的一些外部库。sbt通常是如何实现这一点的 如果我只是通过libraryDependencies+=..将所需的lib添加到build.sbt中,那么它找不到

这适用于Scala 2.11.1和sbt 0.13.5

假设我有一个具有以下目录结构的Scala/sbt项目:

root/
  build.sbt
  src/ ..
  project/
    plugins.sbt
    build.properties
    LolUtils.scala
我想使用
LolUtils.scala
中的一些外部库。sbt通常是如何实现这一点的

如果我只是通过
libraryDependencies+=..
将所需的lib添加到
build.sbt
中,那么它找不到它们,并且在导入行中失败,出现
notfound:object..

如果我添加一个单独的
project/build.sbt
,由于某种原因,它开始无法解析我的插件,另外我需要在嵌套的
project/build.sbt
中手动指定Scala版本,这是不必要的重复

实现这一点的最佳方法是什么?

这意味着它使用自身编译生成定义,即
项目
目录下的
*.sbt
文件和
*.scala
文件。要添加额外的依赖项以在生成定义中使用它们,您必须在
项目/build.sbt
中声明它们

对此有一个警告。您可以在
build.sbt
中为您的项目设置任何
scalaVersion
,但是您不应该在
project/build.sbt
中修改
scalaVersion
,因为它可能与
sbt
本身使用的版本冲突(这可能会也可能不会导致插件的二进制不兼容)

Sbt 0.13.5正在使用Scala 2.10.4,您要使用的库必须与该特定版本的Scala兼容

> about
[info] This is sbt 0.13.5
...
[info] sbt, sbt plugins, and build definitions are using Scala 2.10.4

您的库是否使用Scala 2.10?如果您想在构建定义中使用库,它应该与sbt正在使用的Scala版本兼容。我认为您不应该为构建定义覆盖Scala版本。@lpiepiora版本都很好,库是根据2.11构建的。这就是我的意思,sbt构建定义是使用Scala 2.10.x编译的。您已经声明您正在使用Scala 2.11.1,这对于您的项目源代码来说很好,但是
project/
中的源代码应该使用Scala 2.10编译。x@lpiepiora对,我没想到。libs也适用于2.10,这是主要的想法,然后将它们放入
project/build.sbt
并使用2.10进行构建,并在2.11上保留
root/build.sbt
。@lpiepiora尝试过,如果我没有在构建的
build.sbt
中弄乱
scalaVersion
,效果很好。如果你想回答这个问题,我会接受的。