如何使用scala+复制资源;播放+;sbt

如何使用scala+复制资源;播放+;sbt,scala,playframework-2.0,sbt,Scala,Playframework 2.0,Sbt,我正在使用sbt[0.13]使用scala[2.10.3]编译一个play[2.2]项目。我有用于数据库迁移的.sql文件和scala文件。目录结构如下所示: app |-> db |-> migration |-> V1__init.scala |-> V2__newTable.sql val main = play.Project(appName, appVersion, appDependencies).set

我正在使用sbt[0.13]使用scala[2.10.3]编译一个play[2.2]项目。我有用于数据库迁移的.sql文件和scala文件。目录结构如下所示:

app
|-> db
     |-> migration
           |-> V1__init.scala
           |-> V2__newTable.sql
val main = play.Project(appName, appVersion, appDependencies).settings(
    scalaVersion := "2.10.3",
    scalacOptions ++= Seq("-feature"),   // enable feature warnings
    unmanagedResourceDirectories in Compile <++=  baseDirectory { dir => Seq(dir/"app/db/migration") ++ Seq(dir/"db/migration") }
)
当我从播放控制台(REPL)运行compile时,scala文件(V1__init.scala)被编译成.class并复制到classes文件夹。但是.sql文件没有移动

我尝试在Compile-Seq(dir/“app/db/migration”)++Seq(dir/“db/migration”)}中添加
非托管源目录
,但它没有复制文件。整个街区看起来像:

app
|-> db
     |-> migration
           |-> V1__init.scala
           |-> V2__newTable.sql
val main = play.Project(appName, appVersion, appDependencies).settings(
    scalaVersion := "2.10.3",
    scalacOptions ++= Seq("-feature"),   // enable feature warnings
    unmanagedResourceDirectories in Compile <++=  baseDirectory { dir => Seq(dir/"app/db/migration") ++ Seq(dir/"db/migration") }
)
val main=play.Project(appName、appVersion、appDependencies)。设置(
scalaVersion:=“2.10.3”,
scalacOptions++=Seq(“-feature”),//启用功能警告
编译序列(dir/“app/db/migration”)++Seq(dir/“db/migration”)}中的非托管源目录
)
我也尝试过使用
copyResources
,但没能成功。此处描述:

那么,有人知道如何将sql文件复制到classes文件夹吗

谢谢

更新


我得到了
IO.copyDirectory(新的java.IO.File(“app/db/migration”)、新的java.IO.File(“target/scala-2.10/classes/db/migration”),true)
来复制文件,但是目标是硬编码的,当我更新scala时会改变。你考虑过使用吗?是的,我考虑过,但evolutions似乎不支持运行任意scala代码,而是需要.sql文件。您也可以将sql脚本放入conf dir,因此它会自动位于类路径中。@Schleichardt我已经考虑过这一点,但我不认为conf dir是自动编译的,这是用scala或java编写迁移脚本所必需的。谢谢,谢谢!这几乎完全符合我的需要。我需要将
“.DS|u Store”
添加到排除列表中,因此整行代码如下:
excludeFilter in unmanagedResources in Compile:=“*.scala”|“*.java”| |“.DS| u Store”
  val main = play.Project(appName, appVersion, appDependencies).settings(
    scalaVersion := "2.10.3",
    scalacOptions ++= Seq("-feature"),   // enable feature warnings
    unmanagedResourceDirectories in Compile <+= scalaSource in Compile,
    excludeFilter in unmanagedResources in Compile := "*.scala" || "*.java"
  )