Как включить сгенерированные исходные файлы при компиляции Play?
Как я могу включить сгенерированные исходные файлы, когда мои маршруты и представления Play скомпилированы?
Приложение My Play 2.3 использует плагин, который генерирует исходные файлы под sourceManaged
subdir (target/scala-2.11/src_managed/main/subdir). Эти исходные файлы включают контроллеры и модели, на которые ссылаются мои файлы маршрутов и представления. Но когда я компилирую свое приложение, я получаю такие ошибки:
[ошибка] myapp/conf/ маршруты:14: объект Контакты не является членом контроллеров пакетов [ошибка] GET / контакты контроллеров.Contacts.blank()
и это:
[ошибка] myapp/app/views/contact/form.scala.html:1: не найдено: введите контакт [ошибка] @(contactForm: Форма [Контакт]) [ошибка] ^
Так как controllers/Contacts.java
а также models/Contact.java
проживать в SourceManaged.
Я попытался вручную добавить соответствующий подкаталог управляемых источников в sourceDirectory in Compile
а также javaSource in Compile
в моем build.sbt, но это не улучшило вещи.
Я подумал о том, чтобы сделать управляемый источник subdir подпроектом, а затем использовать aggreate()
, но у него нет необходимых build.sbt или файлов проекта - у него есть только исходные коды Java. И казалось, что превращение каталога управляемого источника в подпроект может быть неуместным. Должен ли я пересмотреть это?
1 ответ
Сначала убедитесь, что у плагина есть способ быть добавленным в sourceGenerators in Compile
вашим проектом Play. Вы можете найти, как это сделать, здесь, в документации по sbt. У меня также есть пример в плагине, который я написал, но обратите внимание, что он использует синтаксис 0.12.x.
Как только вы это сделаете, убедитесь, что один из ваших файлов сборки проекта Play добавляет настройки. Это будет так же просто, как добавить имя, которое вы использовали для настроек в плагине, в файл сборки, как показано в примере моего плагина.