我有一个由几个 BUCK 模块组成的项目。每个模块使用相同的注释处理器为每个注释类生成一个文件。为简单起见,对于每个带注释的类:
package com.myproject.module1;
@Marker
public class SomeFoo {
// ... code ...
}
将在同一个包中生成一个类:
package com.myproject.module1;
@Generated
public class SomeFoo$$Marker {
// ... generated code ...
}
假设我有两个这样的模块:module1
和module2
最后,我有一个module3
依赖于上述两个模块的。
该模块包含另一个注释:
package com.myproject.module3;
@MarkerCollector
public class Bar {
}
我正在尝试使用相同的注释处理器(也可以是单独的)来生成一个引用所有先前生成的文件的类(由于类标记为@Marker
.
问题是注释处理器分别为每个模块运行,当在 module3 中运行时,注释处理器不会“看到”其他模块中生成的文件。
我尝试使用注释处理器Filer
创建一个资源文件并编写所有生成文件的类名,但是这个资源文件也是按模块创建的。
聚合/访问来自不同模块的生成代码的最佳方法是什么?