Проблема заключается в том, что перестал нормально отрабатывать hot deploy, раньше на старых версиях cuba studio достаточно было закрыть/открыть экран и все отрабатывало, сейчас эта фишка не работает, поэтому пользуюсь cuba -> build tasks -> hot deploy, но он не обновляет views.xml, ставлю галку для свойства entity и изменения вступают в силу только после перекомпиляции проекта, что очень не удобно (раньше views.xml перезагружалась по принципу закрыть/открыть экран).
Версия проекта 7.1.3.
Версия среды CUBA Studio 2019.2 (IntelliJ Edition)
Build #CS-192.7142.131, built on March 13, 2020
Runtime version: 11.0.4+10-b304.77 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0
GC: ParNew, ConcurrentMarkSweep
Memory: 725M
Cores: 4
Registry:
Non-Bundled Plugins:
Попробуйте отключить новый механизм hot deploy
Добрый день,
Какая у вас версия плагина CUBA (CUBA -> Welcome) ?
Если не 13.2, то попробуйте обновить плагин.
Что у вас пишется внизу в консоли при редактировании файлов?
Появляются сообщения вроде этих?
Hot deploy was triggered by following files: card-browse.xml [1 ms]
card-browse.xml -> deploy/app_home/app/conf
Если проблемы будут продолжаться, то пожалуйста предоставьте нам отладочные данные, без них не удастся продиагностировать проблему. Для этого нужно:
Включить debug логи ( CUBA
-> Advanced
-> Enable DEBUG Logging level
), воспроизвести проблемы и прислать журнал idea.log ( Help
-> Show Logs in ...
)
Обновился сегодня:
CUBA Platform version: 7.2.4
CUBA Studio plugin version: 13.2-191
IntelliJ version: CUBA Studio 2019.2
Hot deploy(cuba -> build tasks -> hot deploy) работать вообще перестал, хотя пишет, что:
19:56:44: Executing task ‘deployConf’…
Task :myservice-gui:deployConf
Task :myservice-web:clearMessagesCache
Task :myservice-web:deployConf
Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use ‘–warning-mode all’ to show the individual deprecation warnings.
See https://docs.gradle.org/5.6.4/userguide/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 10s
3 actionable tasks: 3 executed
19:56:54: Task execution finished ‘deployConf’.
Логи приложил, что я делал: открыл экран, поймал ошибку Cannot get unfetched attribute, поправил ее в views.xml, нажал hot deploy, закрыл/открыл экран и ошибка так же воспроизводится
log.rar (597.2 КБ)
Такие сообщения не пишет(Hot deploy was triggered by following files: card-browse.xml [1 ms]
card-browse.xml -> deploy/app_home/app/conf) + то, что после изменения контроллеров экрана и верстки (файлы .xml) экрана каждый раз приходится перекомпилироваться является критичной ошибкой
Добрый день,
Вы уверены, что именно это сообщение пишется?
Я проверяю у себя простой случай - view на collection container в браузере.
Меняю views.xml, и у меня в консоли пишется:
Hot deploy was triggered by following files: views.xml [12 ms]
views.xml -> deploy/app_home/app-core/conf
views.xml -> deploy/app_home/app/conf
Что логично. После этого обновленная view применяется к экрану.
У вас же почему-то пишется сообщение про card-browse.xml.
Можете еще раз перепроверить пожалуйста, и прислать, что отображается в консоли при срабатывании hot deploy после изменения views.xml? Это важно, иначе никак не можем понять, что у вас в IDE происходит.
Может быть у вас view в экране применяется каким-то сложным образом, так что он сразу не подхватывается? В простых случаях все срабатывает.
Насчет задачи меню “Hot deploy to configuration directory”, у нас сейчас есть данные, что она может некорректно срабатывать (для java-классов, не для xml файлов), если включен новый режим hot deploy (CUBA -> Settings -> Hot deploy compiled classes). Можете попробовать отключить этот режим, если у вас возникают проблемы с hot deploy.
В следующем релизе мы что-нибудь сделаем с этим пунктом меню, или доработаем, или скроем для нового режима hot deploy.
Это сообщение не пишется:
Hot deploy was triggered by following files: views.xml [12 ms]
views.xml -> deploy/app_home/app-core/conf
views.xml -> deploy/app_home/app/conf
Проблема сейчас такая, что вообще не работает hot deploy, из вашего сообщения я вижу есть разница между “Hot deploy to configuration directory” (этот нужно принудительно вызывать) и обычный hot deploy (который работает автоматически), после обновления (CUBA Platform version: 7.2.4
CUBA Studio plugin version: 13.2-191
IntelliJ version: CUBA Studio 2019.2) у меня перестал работать и тот и другой, не только для файла views.xml, но и для контроллеров экрана и самих экранов…
-
Так вы не пробовали включать этот режим?
-
Эту настройку случаем не отключали у себя в проекте?
https://doc.cuba-platform.com/manual-7.2/app_properties_reference.html#cuba.triggerFilesCheck -
В web.xml web-модуля есть тег с перечислением конфигурационных файлов appPropertiesConfig
Там должна присутствовать запись “file:${app.home}/local.app.properties”
Проверьте, у вас все как нужно?
В моем проекте-примере выглядит так:
<context-param>
<param-name>appPropertiesConfig</param-name>
<param-value>
classpath:com/company/playground/web-app.properties
/WEB-INF/local.app.properties
"file:${app.home}/local.app.properties"
</param-value>
</context-param>
Покажите, что у вас в CUBA -> Settings -> Project Settings -> Hot Deploy Settings.
Для проекта на CUBA 7.2 должно быть что-то такое:
Спасибо за видео.
Есть еще догадка:
Так как вы меняли module prefix на “myservice”, то у вас должны быть выставлены следующие настройки:
В web-app.properties:
cuba.webContextName = myservice
И в build.gradle
def modulePrefix = 'myservice'
От них зависит функционал hot deploy.
Если не это, то можем завтра связаться в Skype вместе с нашим разработчиком, созвониться, чтобы детальнее разобраться, какие файлы попадают или не попадают в нужные папки.
Похоже все таки нужен все таки скайп
в файле build.gradle блок раньше выглядел так:
tomcat {
dir = "$project.rootDir/build/tomcat"
port = 8081
}
надо что бы вот так (дропнуть строчку dir):
tomcat {
port = 8081
}