gpt4 book ai didi

java - 使用 GWT 生成器/链接器将生成的工件发送到源目录中

转载 作者:行者123 更新时间:2023-12-01 05:21:09 25 4
gpt4 key购买 nike

我有一个自定义生成器,它正在 gwt 中创建我自己的延迟绑定(bind)层,但我还需要在纯 java 模块中使用生成的代码。由于我的 gwt 生成器已经根据类上的注释发出“当前绑定(bind)设置”,因此我希望它也为我的纯 java 实例化器生成等效的样板。

我所需要的只是链接器阶段甚至生成器阶段将生成的文件发送到我的工作源包中(就像 android 生成器对 R.java 所做的那样)。如何将 java 文件任意发送到我的源文件夹中?我应该只使用 java.io.File 吗?我更愿意采用像 soyc 这样的编译器标志,以便用户可以定义他们想要生成源的位置。

最佳答案

由于没有其他人回答,我将把这个 hack 扔在那里。

重写 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 即可。

关于java - 使用 GWT 生成器/链接器将生成的工件发送到源目录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10395018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com