我在eclipse中有一个GWT项目,具有GWT模块的以下结构
com.foo.gwt -> Dashboard.gwt.xml
com.foo.gwt.client
com.foo.gwt.server
我有不同的包com.bar.baz1
,com.bar.baz2
等,其内容我想包含在客户端代码中。所有文件都是GWT JAVA-> JS转换兼容。
问题在于< source>在Dashboard.gwt.xml中标记,将路径视为相对于Dashboard.gwt.xml
目录的路径。所以我不能引用com.foo.gwt
层次结构之外的任何内容。
因此,我在MyNewModule.gwt.xml
中创建了一个新模块com.bar
,并使用标记中的相对路径包含baz1
和baz2
个子包。最后我制作了Dashboard.gwt.xml来继承新模块。
这在我编译Dashboard模块时工作正常但在编译MyNewModule时失败。 那是因为MyNewModule中的一些类引用了Dashboard模块的类。
我尝试在MyNewModule中继承Dashboard模块。这会创建一个循环引用,但GWT不会抱怨它。一切正常但我对循环参考不太满意。我不需要MyNewModule,我只需要在Dashboard模块的层次结构中包含代码的方法。
我想知道为什么GWT不允许绝对源路径。
我在这里错过了什么吗?
答案 0 :(得分:3)
您不需要单独编译每个模块。编译com.foo.gwt项目时,GWT编译器将在com.foo.gwt.xml文件中查找所有依赖项,并将编译所有 .java文件com.foo和com.bar.baz。 (和其他库)到javascript。
正如您所说,将MyNewModule.gwt.xml放入com.bar.baz项目并在DashBoard.gwt.xml文件中“继承”它是正确的。您缺少的部分是使用MyNewModule项目生成.jar文件并放入war / WEB-INF / lib文件夹(只是gwt.xml文件和已编译的java类)。