【问题标题】:How to declare a project dependency in SBT 0.10?如何在 SBT 0.10 中声明项目依赖项?
【发布时间】:2011-07-15 06:06:26
【问题描述】:

我使用 SBT 0.10.0

如何下​​载/检索项目依赖项?

例如,slf4s 仅提及这一行:

val slf4s = "com.weiglewilczek.slf4s" %% "slf4s" % "1.0.6

我需要把这条线放在哪里,我如何获得图书馆?

【问题讨论】:

    标签: scala sbt


    【解决方案1】:

    我假设您使用的是 SBT 0.10.0,因为早期版本会自动将您的部门放入 lib_managed

    build.sbt 中,输入以下行:

    retrieveManaged := true
    

    【讨论】:

    • 我确实添加了那行,但 sbt 似乎没有选择我的 project/build/Project.scala 文件。还有什么要设置的吗?我使用 SBT 0.10.0
    • 听起来您的项目文件位于 0.7 位置 (project/build) 而不是 0.10 (只是 project),请参阅 this full example
    【解决方案2】:

    您在项目中创建一个project/build 子目录,并在其中放置一个包含上述内容的scala 文件。

    然后当你从你的项目根目录启动 sbt 时

    update
    

    命令将检索您的依赖项。

    请注意,默认情况下它只会分析您的项目配置一次。如果你改了,你得打电话给reload

    更新:

    让项目类扩展 DefaultProject:

    class SomeProjectName(info: ProjectInfo) extends DefaultProject(info)
    

    【讨论】:

    • 我添加了一个文件 Project.scala import sbt._ import sbt.Keys._ class Project extends Build { val slf4s = "com.weiglewilczek.slf4s" %% "slf4s" % "1.0.6 " } 这里有什么问题吗?更新刷新后获取不到库
    • 由于某种原因 sbt 没有选择项目类。但如果我在 build.sbt 中添加这一行,它确实检索了库: libraryDependencies += "com.weiglewilczek.slf4s" %% "slf4s" % "1.0.6"
    • 这是因为 0.10 找到了build.sbt,上面的建议似乎是针对 0.7 的。有关 0.10 项目文件示例,请参阅 here
    【解决方案3】:

    我不知道你使用的是哪个版本的 sbt。

    对于 0.10,Daniel C. Sobral 发表了一篇关于创建 sbt 项目的博文: dcsobral-project-creation-guide

    也许这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2014-09-04
      • 1970-01-01
      • 2018-03-20
      • 1970-01-01
      • 2011-08-27
      • 2011-11-13
      • 1970-01-01
      • 2017-08-19
      • 2011-10-15
      相关资源
      最近更新 更多