2013-04-27 194 views
6

我想更改我的输出目录中的一些生成的文件,在这种情况下,从XSD架构生成的对象。更改sbt的输出目录

这是我的生成文件的一部分。

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 
    ) 

这个代码把我生成的文件到以下目录:

target/scala-2.10/src_managed/main/models/ 

我怎样才能文件改变我的构建文件输出到下面呢?

/app/models/ 

回答

9

查看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 

注意,“编译”和“测试”值立足关闭基地“源管理”的值,其又基于的cross-target的值,它是基于target值的和其他一些人。

您可以轻松地设定

sourceManaged in Compile := file("app/models") 

如果要基于你设置了另一个设置,如项目的基本目录改变的SBT构建定义的compile:source-managed设置的值,可以使用更多的东西一样

sourceManaged in Compile <<= baseDirectory { _/"app/models" } 

当然,你也可以在这里上使用设置中找到大量信息的: http://www.scala-sbt.org/release/docs/Getting-Started/More-About-Settings
编辑:看起来那个链接已经死了。已经过了几年了,所以我不是100%肯定的,但是这可能接近于原始链接提到的内容:SBT 0.13 - Build definitionSBT 1.0 - Build definition

+0

谢谢,工作良好 – Farmor 2013-04-28 18:50:53

+0

如果想要更改生成的源代码生成器通过eBean? – MrOnyancha 2016-06-24 10:06:54

+0

看起来现在这个链接已经老了:/ – 2018-01-23 18:24:13