在项目中使用类的sbt自定义任务

时间:2012-09-19 19:52:35

标签: scala sbt

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

1 个答案:

答案 0 :(得分:5)

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

构建相关

想要使用构建相关内容的类/方法(minfiy thing,上传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"