【发布时间】:2023-03-26 23:25:02
【问题描述】:
我有一个 sbt 插件,它定义了我希望在 Play 项目或其他一般 sbt 项目中可用的任务。虽然这可能不是最佳实践,但我更愿意让这些任务在 Play 项目中自动可用,所以我需要做的就是通过 plugins.sbt 添加 sbt 插件。但在我能做到这一点之前,我根本无法导入任务。
如果插件的build.sbt如下:
name := "sbt-task-test"
version := "1.0.0-SNAPSHOT"
scalaVersion := "2.10.3"
scalaBinaryVersion := "2.10"
organization := "com.example"
sbtPlugin := true
lazy val testTask = taskKey[Unit]("Run a test task.")
testTask := {
println("Running test task..")
}
如何使testTask 在另一个 sbt 项目的 build.sbt 或 Build.scala 中可用?我试过关注this 示例,但无济于事。
我的最终目标是使用blog post 中定义的任务,但我希望至少先获得一些更简单的示例。在这种情况下,我会在 build.sbt 中添加类似 registerTask("testTask", "com.example.tasks.Test", "Run a test task") 的内容,但是我遇到了与上述相同的问题。
【问题讨论】:
-
您是否按照bottom of the example page 中的步骤之一使插件可识别,并且您是否将其作为依赖项添加到您的项目中?
libraryDependencies += "com.example" ... -
我不想在那个链接中制作一个全局插件。我在 plugins.sbt 和 Build.scala 中都添加了插件作为库依赖。
testTask在包括插件在内的项目中仍然不是有效的密钥。
标签: scala playframework sbt