Ошибка компиляции контроллера активов [значение актива не является членом контроллеров объектов. Активы] Воспроизвести 2.3.8

У меня возникла проблема после переноса моего проекта play framework с 2.2.4 на 2.3.8:

Это вывод ошибки при выполнении команды «компиляция активатора»:

[error] ...\workspace\testproject\conf\routes: value Asset is not a member of object controllers.Assets 
[error] bad symbolic reference to controllers.Assets.Asset encountered in class file 'JavascriptLitteral.class'.
[error] Cannot access type Asset in object controllers.Assets. The current classpath may be missing a definition for controllers.Assets.Asset, or JavascriptLitteral.class may have been compiled against a version that's incompatible with the one found on the current classpath.
[error] ...\workspace\testproject\conf\routes: value Asset is not a member of object controllers.Assets 
[error] three errors found

Я написал свой собственный контроллер активов, который я создал из-за подпроекта. Этот проект больше не включен, поэтому файл controller.Assets по-прежнему включен.

Путь маршрутов стандартный:

GET  /assets/*file       controllers.Assets.at(path="public", file)

Может ли быть так, что Activator для 2.3.8 и Play 2.2.4 по-разному компилируют/очищают проект? Я попытался автоматически отключить сборку eclipse, но все равно без разницы :(.

Есть ли у кого-нибудь идеи, что создает эта проблема? Я рад любым намекам :D


person Knut    schedule 18.02.2015    source источник
comment
ты решил проблему?   -  person Régis    schedule 17.03.2015
comment
У меня была такая же проблема для проекта с подпроектами (Play 2.3.8). Я также создал объекты Assets для всех подпроектов, как описано в документации. Моя ошибка заключалась в том, что я также создал объект Assets для корневого проекта. Это привело к той же ошибке, которую вы описываете. Я удалил его, и все компилируется.   -  person Franck Valentin    schedule 13.04.2015


Ответы (5)


Я удалил object Assets extends controllers.AssetsBuilder в другом файле, и это решило проблему.

person Régis    schedule 17.03.2015

Создание моих методов статическими сделало свое дело, например.

 public static Result index() {
        return ok(index.render("Now I work."));
}
person Casey Murray    schedule 21.03.2016

Сначала запустите activator clean, затем запустите activator run, должно сработать. Если это не работает, это, вероятно, потому, что activator clean каким-то образом не очистил ваши устаревшие сгенерированные маршруты (это должно быть ошибкой активатора). Просто вручную удалите сгенерированные маршруты, должно работать,

rm target/scala-2.11/routes/main/router/*

Путь может отличаться в зависимости от версии игры, с которой вы работаете.

person h--n    schedule 20.07.2016

Я думаю, что это путь, который вы определяете в route.Try

GET     /assets/*file               controllers.Assets.at(path="/public", file)

с path="/public"

Если вышеуказанное не решает вашу проблему, проверьте это.

person singhakash    schedule 18.02.2015
comment
Извините, я забыл path= при записи вопроса (я исправляю это), но он включен в исходный файл маршрута. Что касается ссылки: моя проблема не в том, что активы уже определены как активы объекта, а актив значения не является членом контроллеров объектов. Активы - person Knut; 18.02.2015
comment
@Knut play по-прежнему читает старый актив вместо активов, вы удалили старый путь в маршрутах и ​​​​почистили ли вы - person singhakash; 18.02.2015
comment
Я сделал.. Я почистил, почистил в каждой комбинации с командами: compile, eclipse, reload, update, я переписал файл маршрута, я переписал контроллер Assets, я попробовал почти все комбинации в build.sbt (разные версии scala) и plugins.sbt. Сейчас думаю переписать проект. Я также не могу найти файл JavascriptLitteral.com. - person Knut; 18.02.2015

Похоже, что активатор (воспроизведение 2.3.8) использует другой репозиторий источника зависимостей библиотеки %USER_HOME%/.ivy2 или что-то в этом роде, поэтому проект, созданный в 2.2.4, не обновляется. что плохо. даже не по командам активатор чистый активатор перезагрузить и так далее... кто-нибудь знает почему? Я надеялся, что "активатор eclipse" справится со своей задачей, но он останавливается, когда компилятор находит ошибки.

person Knut    schedule 18.02.2015
comment
Вы удалили play 2.2 и установили новый путь play 2.3. Также можете опубликовать свой build.sbt - person singhakash; 19.02.2015