我已经使用 Gradle 作为构建管理建立了一个 GWT 项目,一切都很好。
我可以在 Eclipse 中将我的项目部署到我的本地 tomcat 并且应用程序按预期运行。但是,如果我启动 DevMode 并更改我的 css 资源(绑定为带有 @Source 注释的 CssResource 类)中的某些内容,则 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 {
}
如您所见,我有扩展 CssResource 的 XOFooterPanelStyle 接口。它用于 XOFooterPanelResource - 它扩展了 ClientBundle - 通过使用带有我的 CSS 文件名称的 @Source 注释。
这是我的 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
}
}
如前所述,我在 eclipse 中使用 tomcat 来运行应用程序,因此-noserver
设置了该选项。