我正在使用 sbt [0.13] 使用 scala [2.10.3] 编译一个 play [2.2] 项目。我有用于数据库迁移的 .sql 文件和 scala 文件。目录结构如下所示:
app
|-> db
|-> migration
|-> V1__init.scala
|-> V2__newTable.sql
当我从播放控制台 (REPL) 运行编译时,scala 文件 (V1__init.scala) 被编译为 .class 并复制到 classes 文件夹。但是 .sql 文件没有移动。
我尝试添加unmanagedResourceDirectories in Compile <++= baseDirectory { dir => Seq(dir/"app/db/migration") ++ Seq(dir/"db/migration") }
但它没有复制文件。整个区块看起来像:
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") }
)
我也尝试过使用copyResources
,但无法让它工作。此处描述:http ://www.playframework.com/documentation/2.0/SBTSettings
那么有谁知道我如何将 sql 文件复制到 classes 文件夹?
谢谢!
更新
我必须IO.copyDirectory(new java.io.File("app/db/migration"), new java.io.File("target/scala-2.10/classes/db/migration"), true)
复制文件,但目标是硬编码的,并且在我更新 scala 时会改变