gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 03:34:26 24 4
gpt4 key购买 nike

我如何在编译 Play 路由和 View 时包含生成的源文件?

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

[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 源代码。似乎将托管源目录制作成子项目可能是不合适的。我应该重新考虑这个吗?

最佳答案

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

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

关于scala - Play编译时如何包含生成的源文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24577827/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com