如何在sbt的.scala文件中使用外部依赖?

问题描述 投票:0回答:1

这适用于 Scala 2.11.1 和 sbt 0.13.5。

假设我有一个 Scala/sbt 项目,其目录结构如下:

root/
  build.sbt
  src/ ..
  project/
    plugins.sbt
    build.properties
    LolUtils.scala

我想在

LolUtils.scala
中使用一些外部库。在 sbt 中这通常是如何实现的?

如果我只是通过

build.sbt
将我需要的库添加到
libraryDependencies += ..
中,那么它找不到它们,并且在导入行上失败,并显示
not found: object ..

如果我添加一个单独的

project/build.sbt
,由于某种原因它开始无法解析我的插件,而且我需要在嵌套的
project/build.sbt
中手动指定Scala版本,这是不必要的重复。

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

scala sbt
1个回答
4
投票

sbt 是递归的,这意味着它使用自身来编译构建定义,即

*.sbt
目录下的
*.scala
文件和
project
文件。要添加额外的依赖项以在构建定义中使用它们,您必须在
project/build.sbt
中声明它们。

对此有一个警告。您可以为您的项目设置任何

scalaVersion
,即在
build.sbt
中,但您不应修改
scalaVersion
中的
project/build.sbt
,因为它可能与
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
© www.soinside.com 2019 - 2024. All rights reserved.