Проблема с hot deploy

Проблема заключается в том, что перестал нормально отрабатывать 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
image

Добрый день,

Какая у вас версия плагина 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, но и для контроллеров экрана и самих экранов…

  1. Так вы не пробовали включать этот режим?

  2. Эту настройку случаем не отключали у себя в проекте?
    https://doc.cuba-platform.com/manual-7.2/app_properties_reference.html#cuba.triggerFilesCheck

  3. В 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 должно быть что-то такое:
image

image

web.xml (2.3 КБ)
Вот так выглядит мой файл

Я записал видео и приложил логи
Bandicam.rar (9.6 МБ)

Спасибо за видео.
Есть еще догадка:
Так как вы меняли module prefix на “myservice”, то у вас должны быть выставлены следующие настройки:
В web-app.properties:

cuba.webContextName = myservice

И в build.gradle

def modulePrefix = 'myservice'

От них зависит функционал hot deploy.

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

Похоже все таки нужен все таки скайп
image image

в файле build.gradle блок раньше выглядел так:

tomcat {
        dir = "$project.rootDir/build/tomcat"
        port = 8081
    }

надо что бы вот так (дропнуть строчку dir):

tomcat {

        port = 8081
    }
1 симпатия