Я создал проект 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
.