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

met*_*ete 4 scala sbt

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

小智 5

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

建立相关

想要使用类/方法来做相关的事情(minfiy事情,上传jar/wars到服务器等等.)

  • 你必须将它放在插件中,或者你需要将源放在项目文件夹中.
  • 无法从您的项目中调用代码

如果它与构建相关,有人可能已经处理了类似的问题,并且可能已经有一个sbt插件,但如果没有,那么让我知道,我可以解释创建sbt插件.

非构建相关

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

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

例如,包脚本

object Script {
    def foo = println("I am doing things non-build related")
}
Run Code Online (Sandbox Code Playgroud)

在sbt现在运行

console
>> import script._
>> foo    // prints out  "I am doing things non-build related"
Run Code Online (Sandbox Code Playgroud)