use*_*427 6 hibernate scala sbt
我是整个SBT和Scala场景的新手,我正在尝试构建一个使用Java/Scala类和Hibernate的项目.我正在让项目构建得很好 - 我只需要手动将我的hibernate配置文件复制到我的target/scala<version>/classes文件夹中,这样就可以通过hibernate获取它们了.
有没有办法在SBT中创建一个任务,在每次编译时复制这些文件夹?这是我的Build.scala档案:
import sbt._
object Sportsbook extends Build {
lazy val project = Project (
"sportsbook",
file("."),
copyConfigTask
)
val copyConfig = TaskKey[Unit]("copy", "Copy hibernate files over to target directory")
/*
// Something like this
lazy val copyConfigTask = copyConfig <<=
val configDir1 = baseDirectory / "config"
val configDir2 = outputPath / "config"
IO.copyDirectory(configDir1, configDir2)
*/
}
Run Code Online (Sandbox Code Playgroud)
ret*_*nym 12
实现这一目标的最直接方法是将文件移入./src/main/resources/config.
或者,添加${base}/config到resourceDirectories in Compile.
resourceDirectories in Compile <+= baseDirectory / "config"
Run Code Online (Sandbox Code Playgroud)
不幸的是,那里的文件将被复制到类路径的根目录.您需要移动它们./src/config/config才能恢复它.(请参阅mappingsfor资源如何基于资源文件与基本资源目录的相对位置)
您想要将文件打包在JAR中吗?这两个答案都会导致这种情况.你可以把它们拿走mappings in packageBin以避免这种情况.
mappings in (Compile, packageBin) ~= (_.filter { case (file, outpath) => outpath.startsWith("/config")} )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3861 次 |
| 最近记录: |