【问题标题】:GWT Generator sequencingGWT 发生器排序
【发布时间】:2011-11-14 17:51:20
【问题描述】:

如果我使用 GWT Generator 框架生成源代码,如何确保一个生成器先于另一个运行。

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

【问题讨论】:

  • 你能举个例子吗?生成器在 GWT.create() 上运行,因此让一个生成器生成 GWT.create() 将调用另一个生成器。如果一个生成器依赖于另一个生成器生成的其他代码,我觉得你有问题;重构您的代码,以便两个生成器都可以生成公共代码,而不是依赖于排序。

标签: java gwt generator


【解决方案1】:

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

例如在您的情况下,您的生成器将必须创建一个 java 类(带有普通的 uibinder 内容)和 *.ui.xml 文件。当 GWT 开始预编译新创建的类时,它最终会调用 UiBinder 生成器。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 2012-04-24
      • 1970-01-01
      • 2018-05-07
      • 1970-01-01
      • 2019-07-24
      • 1970-01-01
      相关资源
      最近更新 更多