我正在使用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时会更改
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"
)
您可以使用以下命令轻松检查class文件夹中的内容:
sbt clean full-classpath && ls target/scala-2.10/classes/db/migration/
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句