Ответ 1
Файл → Структура проекта
Выберите Источники в правой панели
Добавить исходную папку
мишень/scala -XXX/classes_managed
мишень/scala -XXX/src_managed/Основной
Я следую одному из учебных руководств по игре, но я получаю ошибки компиляции всякий раз, когда я пытаюсь использовать обратную маршрутизацию. Во-первых,
public static Result javascriptRoutes() {
response().setContentType("text/javascript");
return ok(
Routes.javascriptRouter("jsRoutes",
controllers.routes.javascript.Projects.add(),
controllers.routes.javascript.Projects.delete(),
controllers.routes.javascript.Projects.rename(),
controllers.routes.javascript.Projects.addGroup()
)
);
}
где ошибка, показанная в intelliJ, не может разрешить метод javascriptRouter (java.lang.String,?,?,?,?) '
Но также в unit test:
@Test
public void notAuthenticated() {
Result result = callAction(
controllers.routes.ref.Application.index(),
fakeRequest()
);
assertEquals(303, status(result));
assertEquals("/login", header("Location", result));
}
где он не может разрешить индексный метод.
Это проблема с intelliJ, или я что-то пропускаю в игре?
В первой части, вот запись в файле маршрутов:
GET /assets/javascripts/routes controllers.Application.javascriptRoutes()
и мой контроллер, Projects, имеет определенные методы.
Файл → Структура проекта
Выберите Источники в правой панели
Добавить исходную папку
мишень/scala -XXX/classes_managed
мишень/scala -XXX/src_managed/Основной
Я столкнулся с той же проблемой и нашел решение здесь: https://github.com/playframework/Play20/issues/969
Короче:
javascript
и ref
под пакетом контроллеровactivator compile
, и теперь Intellij должен его//использовать для "воспроизведения компиляции" activator idea
//используется для "play compile" *Вытянут из ссылки, предоставленной @Markus Kittig. Отличное временное исправление. https://github.com/playframework/playframework/issues/1784#issuecomment-26345523
Сводка: Добавьте target/ scala -XXX в качестве управляемого источника и удалите флажки приложений и источники источников поиска внутри File- > Project Structure- > Modules- > Sources. Затем перекомпилируйте.
Работает над IntelliJ Ultimate 12.1. {4 | 6}. Создал игровое приложение с интерфейсом командной строки и сгенерировал файл проекта с помощью play idea
. Использовал Play 2.2.0.
С IntelliJ 14.1 и Play 2.3.8 ничего из этого не было, но совет из этого списка рассылки работал. (Почти) явно скопировано:
Найдите цель / scala -2.11/src_managed и target/scala -2.11/twirl каталогов в представлении проекта, затем щелкните правой кнопкой мыши и отметьте каталог As → Generated Sources (Root).
Я столкнулся с версией scala и, очевидно, в новых версиях IntelliJ было добавлено слово Root. Кроме того, вы не можете выбрать это из окна "Структура проекта", этот параметр недоступен. Это возможно только через панель Project
в главном окне. Если он не будет отмечен как Generated Sources
, попробуйте снять отметку с каталога target
(Отметить каталог как → Снять отметку).
Для пользователей, использующих Play 2.4.x или выше, кажется, что Play больше не создает файлы обратной маршрутизации для javascript в src_managed
et al.
Вместо этого вам нужно включить каталог scala-2.xx/routes/main
как Sources
.
Этот вопрос был задан год назад, но для ответа на другие запросы другим разработчикам проблемы легко решить, добавив путь "play.Routes", как этот
public static Result javascriptRoutes() {
response().setContentType("text/javascript");
return ok(
play.Routes.javascriptRouter("jsRoutes",
// Routes for Projects
controllers.routes.javascript.Projects.add(),
controllers.routes.javascript.Projects.delete(),
controllers.routes.javascript.Projects.rename(),
controllers.routes.javascript.Projects.addGroup()
)
);
}
Убедитесь, что у вас есть правильный импорт в класс:
import play.mvc.*;
import play.data.*;
Я использую идею сообщества Idea 14.1.4, мне удалось удалить индексы и маршрутизировать не разрешенные ошибки, щелкнув правой кнопкой мыши по целевой папке и отметив ее как не исключенную. NB я запускаю свой проект с помощью командной строки, я не могу найти какую-либо конфигурацию запуска в ide.