Scala 为什么不是';是否将生成的资源复制到classes文件夹?

Scala 为什么不是';是否将生成的资源复制到classes文件夹?,scala,plugins,sbt,Scala,Plugins,Sbt,我已经编写了一个插件来处理一些SQL文件,并生成新的SQL文件作为托管资源。当我运行“sbt compile”时,文件将生成到target/resource\u managed/main/sql文件夹中。当我运行'sbt run'或'sbt test'时,它们不会像我预期的那样复制到target/classes目录中,因此在类路径上查找它们的代码无法找到它们 以下是插件的代码: object SqlProcessorPlugin extends AutoPlugin { import aut

我已经编写了一个插件来处理一些SQL文件,并生成新的SQL文件作为托管资源。当我运行“sbt compile”时,文件将生成到target/resource\u managed/main/sql文件夹中。当我运行'sbt run'或'sbt test'时,它们不会像我预期的那样复制到target/classes目录中,因此在类路径上查找它们的代码无法找到它们

以下是插件的代码:

object SqlProcessorPlugin extends AutoPlugin {
  import autoImport._

  override def requires = plugins.JvmPlugin
  override def trigger = noTrigger

  object autoImport {
    lazy val processorSettings = taskKey[File]("Settings for sql processing")
    lazy val processSqlTask = taskKey[Seq[File]]("Process Sql")

    def configProcessor(cfg: Configuration) = {
      inConfig(cfg) {
        Seq(
          target in processorSettings := resourceManaged.value / "sql",
          sourceDirectory in processorSettings := sourceDirectory.value / "sql",
          processSqlTask / fileInputs += (sourceDirectory in processorSettings).value.toGlob / ** / "*.sql",
          processSqlTask := {
            SqlProcessor.process(
              processSqlTask.inputFileChanges,
              (target in processorSettings).value
            )
          },
          resourceGenerators += processSqlTask.taskValue,
        )
      }
    }

    override val projectSettings = configProcessor(Compile)
  }
}
基于其他问题和其他插件的示例,我尝试了很多不同的方法,但是没有任何结果导致生成的文件被复制到类路径


我在这里错过了什么/做错了什么?

我发现了问题所在。我使用resourceManager.value而不是(Compile/resourceManaged.value)作为目标目录。此外,我认为这会导致输出文件的相对路径混乱,导致它们被复制到错误的位置。

是否
SqlProcessor.process
返回所有生成的文件?是的,它返回生成的文件。我发现它是在复制文件,只是不是在我预期的地方。它将它们复制到target/classes/scala-2.13/classes/resource\u managed,而不是target/classes。如何将它们直接复制到classes文件夹下?