强制GWT编译器停止修剪无效的CompilationUnits

时间:2012-05-31 15:36:26

标签: java gwt maven code-generation playn

我在PlayN中有一个项目,允许我在阳光下为每个平台编译一个java代码库;我正在构建gwt trunk,它目前允许在纯java实现中调用GWT.create()。跳过一些箍,即调用ServerGwtBridge.getInstance()。register(String.class,new ClassInstantiator(){...});对于GWT.create()使用的每个类。

因此,我不是手动编写每个绑定的代码,而是在我的类上设置了一些注释,并创建了一个生成器,它会发出注册ClassInstatiators所需的初始化代码。生成器在gwt模块上运行良好,我制作了一个maven mojo来在我的纯Java类上运行生成器。所以,现在我的所有模块,gwt,java和android都可以使用GWT.create(),我可以支持gwt.xml模块文件中的replace-with语法。

麻烦的是,任何引用任何gwt不支持的类或​​方法的类都会被gwt预编译器修剪掉。它们仍然存在于单元缓存中,但生成器的TypeOracle不再看到它们。我不想复制粘贴大量代码来阻止编译器删除无效单元;我看到一些代码引用NameEnvironmentAnswer似乎允许编译中的无效单元,但无法弄清楚如何使其工作。

我无意链接此代码,我只想为我的生成器运行一个填充的TypeOracle,这意味着我需要编译器停止修剪无效单元。

0 个答案:

没有答案