如何使用scala+复制资源;播放+;sbt
我正在使用sbt[0.13]使用scala[2.10.3]编译一个play[2.2]项目。我有用于数据库迁移的.sql文件和scala文件。目录结构如下所示:如何使用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
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"
)