【问题标题】:How to access library dependencies at build-time in SBT/Scala build?如何在 SBT/Scala 构建中访问库依赖项?
【发布时间】:2019-01-02 15:59:34
【问题描述】:

例如,假设我有一个文件project/CodeGeneration.scala 生成“托管”源代码,并假设对象 (CodeGeneration) 需要利用第三方库——比如jsoup...

import org.jsoup._

object CodeGeneration {
  def generateCode = /* Generate code using jsoup... */
}

只需在build.sbt 中的libraryDependencies 中添加一行jsoup 并不能解决问题;它会导致编译错误,抱怨缺少 jsoup 对象/命名空间。

那么,(如何)可以从“元”代码(生成其他代码的代码)访问这种依赖关系?

【问题讨论】:

    标签: scala build sbt metaprogramming


    【解决方案1】:

    似乎解决方案是利用 sbt 的“递归”特性,并在 project 目录中添加一个额外的 build.sbt 文件。因此,例如,project/build.sbt 可能看起来像这样:

    libraryDependencies += "org.jsoup" % "jsoup" % "1.11.2"
    

    还有更多细节in sbt's official documentation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-09
      • 1970-01-01
      • 2017-08-19
      • 2013-03-15
      相关资源
      最近更新 更多