GWT DevMode не перезагружает изменения в файлах CSS
Я настроил проект GWT, используя Gradle для управления сборкой, и все в порядке.
Я могу развернуть свой проект на локальном tomcat в eclipse, и приложение будет работать так, как задумано. Но если я запускаю DevMode и что-то изменяю в моих ресурсах css (которые связаны как классы CssResource с аннотацией @Source), GWT DevMode не перехватывает его, и изменения css не учитываются. Я что-то пропустил? Я ожидаю, что DevMode обнаружит изменения в файлах.css во время разработки без необходимости повторной компиляции gwt.
Вот пример того, как я использую ресурсы CSS:
public interface XOFooterPanelResource extends FooterPanelResource, ClientBundle {
@Override
@Source("XOFooterPanel.css")
XOFooterPanelStyle style();
@Override
@ImageOptions(repeatStyle = RepeatStyle.Horizontal)
ImageResource footerPanelBackground();
@Override
@ImageOptions(repeatStyle = RepeatStyle.Horizontal)
ImageResource footerPanelBackgroundEndUser();
@Override
@Source("footerDelimiter.jpg")
ImageResource footerDelimiter();
}
public interface XOFooterPanelStyle extends FooterPanelStyle, CssResource {
}
Как вы можете видеть, у меня есть мой интерфейс XOFooterPanelStyle, который расширяет CssResource. Он используется в XOFooterPanelResource - который расширяет ClientBundle - с помощью аннотации @Source с именем моего CSS-файла.
А вот часть моего файла сборки Gradle, которая отвечает за запуск DevMode:
javaexec {
main = 'com.google.gwt.dev.DevMode'
jvmArgs = ['-Xmx2048M', '-XX:MaxPermSize=1024M']
classpath {
[
sourceSets.main.java.srcDirs,
// Java source
sourceSets.main.output.resourcesDir,
// Generated resources
sourceSets.main.output.classesDir,
// Generated classes
sourceSets.main.compileClasspath // Deps
]
}
args = [
'-startupUrl',
'myapp/index.html',
'-noserver',
'-war',
'build/devmode',
'-gen',
'gen'
]
ext.gwtModules.each {
args += it
}
}
Как упоминалось ранее, я использую tomcat внутри eclipse для запуска приложения, поэтому -noserver
опция установлена.
1 ответ
Если вы непосредственно не измените файл CSS, на который ссылается tomcat, вы не увидите изменений в режиме разработки. Я считаю, что когда вы развертываете через tomcat в eclipse, ваш код не ссылается непосредственно из рабочей области проекта eclipse, копия перемещается в папку веб-приложений tomcat.
Я не уверен, что стандартный способ обойти это. Я чувствую, что должна быть возможность обновить статические ресурсы для экземпляра tomcat из Eclipse, но я не рассматривал это.
Вот два способа, которыми я мог обойти эту проблему, когда мне было нужно:
1) Вы можете поместить код CSS в свои файлы ui.xml, и он должен быть подобран devMode.
Учебник о том, как добавить CSS в ваш ui.xml
2) Вы также можете напрямую изменить файл css в папке webapps, а затем перенести все внесенные изменения в версию рабочей области.