Far*_*mor 7 scala sbt playframework scalaxb playframework-2.1
我想更改某些生成文件的输出目录,在本例中是从XSD-Schema生成的对象.
这是我的构建文件的一部分.
val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA,
settings = Defaults.defaultSettings ++ buildInfoSettings ++ scalaxbSettings
).settings(
sourceGenerators in Compile <+= buildInfo,
buildInfoKeys := Seq[BuildInfoKey](name, version, scalaVersion, sbtVersion),
buildInfoPackage := "hello",
packageName in scalaxb in Compile := "models",
sourceGenerators in Compile <+= scalaxb in Compile
)
Run Code Online (Sandbox Code Playgroud)
此代码将生成的文件放入以下目录:
target/scala-2.10/src_managed/main/models/
Run Code Online (Sandbox Code Playgroud)
如何更改构建文件以将文件输出到下面呢?
/app/models/
Run Code Online (Sandbox Code Playgroud)
Dyl*_*lan 11
检查sourceManaged设置键.任何源生成器任务通常都会将东西放入该设置指定的文件中.
source-managed - target/scala-2.10/src_managed
compile:source-managed - target/scala-2.10/src_managed/main
test:source-managed - target/scala-2.10/src_managed/test
Run Code Online (Sandbox Code Playgroud)
请注意,"编译"和"测试"值基于基础"源管理"值,而后者又基于cross-target值target和其他一些值.
您可以使用该compile:source-managed设置轻松更改sbt构建定义中的设置值
sourceManaged in Compile := file("app/models")
Run Code Online (Sandbox Code Playgroud)
如果你想让你的设置基于另一个设置,比如项目的基本目录,你可以使用更像的东西
sourceManaged in Compile <<= baseDirectory { _ / "app/models" }
Run Code Online (Sandbox Code Playgroud)
当然,你可以在这里找到大量有关使用设置的信息:http://www.scala-sbt.org/release/docs/Getting-Started/More-About-Settings
edit:看起来链接已经死了.已经有几年了,所以我不是百分百肯定,但这可能接近原始链接所说的内容:SBT 0.13 - 构建定义或SBT 1.0 - 构建定义