如何在taskKey中使用第三方库?

时间:2014-08-31 13:31:42

标签: scala sbt

我想在.Scala / .sbt项目文件的taskKey中使用第三方库。

我的问题是当我尝试导入文件时出现编译错误。

我的目标很简单我想添加一个使用sbt cli执行某些逻辑的任务键,我已经尝试了使用sbt command line application的示例,但它并不能满足我的需要,因为我需要打包应用程序来测试代码。

那么如何在加载阶段将依赖项导入sbt cli?

示例:

val customTaskKey = TaskKey[Unit]("customTaskKey", "Runs customTaskKey")
lazy val myProjectSettings: Seq[Setting[_]] = Seq(
  customTaskKey :={

    val instance : ThirdPartLibraryClass()
    //             ^
    //            Symbol not found : compilation error
  }
)

1 个答案:

答案 0 :(得分:3)

您可以通过正常方式添加相关性,但在my-project/project/plugin.sbt文件中而不是my-project/build.sbt

libraryDependencies ++= Seq(
  "thirdparty" % "library" % "1.0"
)

如果您的项目是foofoo/project是另一个SBT项目,它为foo项目构建SBT构建。因此,foo/project文件夹中的配置适用于foo的构建,而不适用于foo本身。