4

如何将自定义任务添加到使用(使用类、运行方法等)项目源的 sbt 构建定义?似乎它甚至在编译之前就试图找到它们。

4

1 回答 1

5

我需要知道你为什么要调用这些方法,因为这会改变答案。如果你想做某事...

构建相关

想要使用与构建相关的类/方法(minfiy 事物,将 jar/wars 上传到服务器等。)

  • 您必须将其放入插件中,或者您需要将源代码放入项目文件夹中。
  • 无法从您的项目中调用代码

如果它与构建相关,有人可能已经处理过类似的问题,并且可能已经有一个 sbt 插件,但如果没有,请告诉我,我可以解释创建 sbt 插件。

非构建相关

只想调用/测试与构建周期无关的方法。

  • 您可以将其放在项目中名为 Script 的对象中(随便命名),启动控制台,然后导入脚本对象并运行。
  • 为了使这更容易,您可以为控制台制作一个自定义导入脚本,该脚本会自动导入所有脚本,然后您可以运行

例如,打包脚本

object Script {
    def foo = println("I am doing things non-build related")
}

在 sbt 现在运行

console
>> import script._
>> foo    // prints out  "I am doing things non-build related"
于 2012-09-24T13:47:26.350 回答