[英]Aggregate output from Annotation Processors of different buck modules
我有一個由幾個 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
標記的類。
問題是注釋處理器分別為每個模塊運行,當在模塊 3 中運行時,注釋處理器不會“看到”在其他模塊中生成的文件。
我已經嘗試使用注解處理器的Filer
創建一個資源文件並寫入所有生成文件的類名,但是這個資源文件也是每個模塊創建的。
聚合/訪問來自不同模塊的生成代碼的最佳方法是什么?
如果您正在使用 gradle,您可以創建一個JavaCompile
任務並像我在這里所做的那樣對其進行配置。 我的項目是針對 android 的,所以你會看到variant
只要確保你把你的 classPath 放在那里 🤓
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.