Scala 播放编译时如何包含生成的源文件?

Scala 播放编译时如何包含生成的源文件?,scala,playframework,sbt,playframework-2.3,Scala,Playframework,Sbt,Playframework 2.3,在编译播放路线和视图时,如何包含生成的源文件 我的Play 2.3应用程序使用一个插件,在sourceManagedsubdir(target/scala-2.11/src_managed/main/subdir)下生成源文件。这些源文件包括在“我的路线”文件和视图中引用的控制器和模型。但当我编译应用程序时,会出现如下错误: [error] myapp/conf/routes:14: object Contacts is not a member of package controllers [

在编译播放路线和视图时,如何包含生成的源文件

我的Play 2.3应用程序使用一个插件,在
sourceManaged
subdir(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() [错误]myapp/conf/routes:14:对象联系人不是包控制器的成员 [错误]GET/contacts controllers.contacts.blank() 这是:

[error] myapp/app/views/contact/form.scala.html:1: not found: type Contact [error] @(contactForm: Form[Contact]) [error] ^ [错误]myapp/app/views/contact/form.scala.html:1:未找到:键入contact [错误]@(联系人表单:表单[联系人]) [错误]^ 因为
controllers/Contacts.java
models/Contact.java
位于sourceManaged下

我已经尝试在build.sbt中手动将适当的托管源代码子目录添加到Compile中的
sourceDirectory和Compile中的
javaSource,但这并没有改善情况


我曾考虑过将托管源子目录作为子项目,然后使用
aggreate()
,但它没有必要的build.sbt或项目文件——它只有Java源代码。而且,似乎将托管源目录从转换为子项目可能是不合适的。我是否应该重新考虑这个问题?

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


完成此操作后,请确保其中一个播放项目生成文件添加了设置。这将非常简单,只需将插件中用于设置的名称添加到构建文件中,就像我的插件所显示的那样。

这是一个开源项目吗?