2 回答

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

TA貢獻1893條經驗 獲得超10個贊
您可以通過單獨的編譯器執行更早地編譯您的處理器。
<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>
我已經對此進行了測試,它可以工作——處理器確實在實際編譯階段稍后被調用。
如果您也從同一個項目中預編譯了一些其他類,那么您可以直接在處理器中引用和使用它們。那可能很有用。
添加回答
舉報