Scala 播放编译时如何包含生成的源文件?
在编译播放路线和视图时,如何包含生成的源文件 我的Play 2.3应用程序使用一个插件,在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 [
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语法
完成此操作后,请确保其中一个播放项目生成文件添加了设置。这将非常简单,只需将插件中用于设置的名称添加到构建文件中,就像我的插件所显示的那样。这是一个开源项目吗?