我有一个自定义生成器,它在gwt中创建我自己的延迟绑定层,但我也需要在纯java模块中使用生成的代码。因为我的gwt生成器已经按照类上的注释发出了“当前绑定设置”,所以我希望它也为我的纯java实例化程序生成等效的样板。
我所需要的就是让我的链接器阶段甚至生成器阶段将生成的文件发送到我的工作源包中(就像安卓生成器为R.java所做的那样)。如何任意将java文件发送到我的源文件夹?我应该只使用java.io.File吗?我更喜欢使用像soyc这样的编译器标志,这样用户就可以定义他们想要生成源代码的位置。
发布于 2013-07-24 23:33:36
既然没有其他人应答,我就把这篇文章扔出去。
覆盖StandardGeneratorContext$GeneratedUnitWithFile.查找:
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file);
diskCache.transferToStream(sourceToken, fos);
} 添加
File newFile = rebaseFile(file); // Make a copy wherever you need
diskCache.transferToStream(sourceToken, fos);使用此选项可根据需要调整已保存文件的基址。我建议使用静态ThreadLocal来告诉生成器在哪里保存副本。当生成器子系统对StandardGeneratorContext调用.finish()时(通常在GWT.create的末尾),就会调用这个函数;只要没有任何待提交的PrintWriters,您就可以手动调用它。
https://stackoverflow.com/questions/10395018
复制相似问题