Play编译时如何包含生成的源文件?

时间:2014-07-04 15:56:33

标签: scala playframework sbt playframework-2.3

如何在编译Play路线和视图时包含生成的源文件?

My Play 2.3应用程序使用一个插件,在sourceManaged子目录下生成源文件(target / scala-2.11 / src_managed / main / subdir)。这些源文件包括我的路径文件和视图中引用的控制器和模型。但是当我编译我的应用程序时,我得到这样的错误:

[error] myapp/conf/routes:14: object Contacts is not a member of package controllers
[error] GET     /contacts                   controllers.Contacts.blank()

和此:

[error] myapp/app/views/contact/form.scala.html:1: not found: type Contact
[error] @(contactForm: Form[Contact])
[error] ^

因为controllers/Contacts.javamodels/Contact.java位于sourceManaged下。

我已尝试在build.sbt中手动将相应的托管来源子网站添加到sourceDirectory in CompilejavaSource in Compile,但这并没有改进。

我考虑过将托管源子目录设为子项目,然后使用aggreate(),但它没有必要的build.sbt或项目文件 - 它只有Java源代码。似乎将托管源目录放入子项目可能是不合适的。我应该重新考虑一下吗?

1 个答案:

答案 0 :(得分:1)

首先确保插件可以通过Play项目添加到sourceGenerators in Compile。您可以在sbt文档中找到如何执行此操作here。我在我编写的插件中也有an example,但请注意它使用了0.12.x语法。

完成后,请确保您的某个Play项目构建文件添加了设置。这就像将插件中用于设置的名称添加到构建文件一样简单,就像我的插件显示的this example一样。

相关问题