2 回答

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊
解決此問題的最簡(jiǎn)單方法是將您的項(xiàng)目轉(zhuǎn)換為多模塊項(xiàng)目,其中注釋處理器位于其自己的模塊中。注釋處理器有一個(gè)不同的模塊,您可以使用全新的<annotationProcessorPaths>
選項(xiàng)通過groupId
/定義注釋處理器artifactId
。
使用注釋處理器的模塊可能需要依賴于注釋處理器模塊才能首先構(gòu)建它。
注意:在此答案的先前版本中,我描述了解決此問題的另一種方法,顯然不能開箱即用。該部分已被刪除。

TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊
您可以通過單獨(dú)的編譯器執(zhí)行更早地編譯您的處理器。
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>compile-generator</id>
<phase>generate-sources</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<includes>
<include>com/example/YourProcessor.java</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
我已經(jīng)對(duì)此進(jìn)行了測(cè)試,它可以工作——處理器確實(shí)在實(shí)際編譯階段稍后被調(diào)用。
如果您也從同一個(gè)項(xiàng)目中預(yù)編譯了一些其他類,那么您可以直接在處理器中引用和使用它們。那可能很有用。
添加回答
舉報(bào)