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

Scala 在项目中使用类的sbt自定义任务,scala,sbt,Scala,Sbt,如何将自定义任务添加到使用(使用类、运行方法等)项目源的sbt生成定义中?似乎它甚至在编译之前就试图找到它们。我需要知道为什么要调用这些方法,因为这会改变答案。如果你想做点什么 构建相关 想要使用与构建相关的类/方法(minfiy、上传jar/wars到服务器等) 你必须把它放在一个插件中,或者你需要把源代码放在一个项目文件夹中 无法从项目中调用代码 如果它与构建相关,可能有人处理过类似的问题,并且可能已经有了sbt插件,但是如果没有,请告诉我,我可以解释创建sbt插件的原因 非构建相关 只

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

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

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

  • 你必须把它放在一个插件中,或者你需要把源代码放在一个项目文件夹中
  • 无法从项目中调用代码
如果它与构建相关,可能有人处理过类似的问题,并且可能已经有了sbt插件,但是如果没有,请告诉我,我可以解释创建sbt插件的原因

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

  • 您可以将其放在项目中名为Script的对象中(命名为任何名称),启动控制台,然后导入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"