2011-11-14 31 views
0

如果我使用GWT生成器框架生成源代码,我如何确保一个生成器在另一个生成器之前运行。GWT生成器排序

例如,如果我正在生成uibinder代码,如何确保我的生成器在uibinder之前运行?

+0

你能举个例子吗?发电机在GWT.create()上运行,所以有一个生成器生成GWT.create()将调用另一个生成器。如果一个生成器依赖于另一个生成器生成的其他代码,那么我有一个问题;重构你的代码,以便两个生成器可以生成通用代码,而不是依赖于排序。 –

回答

2

您不必确保它。发电机的工作方式如下。 当调用generate方法时,generator可能会返回新类的名称并创建一个新的源。在此GWT将尝试预编译新创建的源。如果新类包含GWT.create,它将重新绑定到某个生成器,那么该生成器也将被调用。

例如在你的情况下,你的生成器将不得不创建一个java类(使用普通的uibinder)和* .ui.xml文件。当GWT将开始预编译新创建的类时,它将最终调用UiBinder生成器。

0

我的猜测是你的生成器类必须在其他生成器触发类之前编译。

我建议将生成的软件包包含在依赖模块中,或者在您的uibinder文件之前编译生成的类文件。

在您的示例中,MyGenerator.java将在编译阶段的MyView.java之前。