![](/img/trans.png)
[英]How to do annotation processing and analyze the result with Junit test run status
[英]How do I run annotation processing via maven 3.3?
多年來,我們一直在運行maven-processor-plugin作為一個單獨的目標(在maven-compiler-plugin上使用proc:none
)。 我們終於從maven 3.0.5升級到最新的3.3.3,我發現maven-processor-plugin基本上看起來已經死了。 據我所知,它還沒有從谷歌代碼中遷移出來。
我們主要使用注釋處理來生成匕首類。 我不記得原因,但當時(在dagger-1中),我們得到的印象是在generate-sources
和generate-test-sources
階段而不是在compile
和test-compile
期間這樣做更好。這就是我們開始使用maven-processor-plugin的原因。 請注意,我們希望在eclipse / m2e中也能很好地發揮作用。
是否有一種新的更好的方法可以從對eclipse友好的maven運行注釋處理?
您可以使用maven-compiler-plugin
進行注釋處理,因為javac
存在該功能。 要在不同的階段進行注釋處理和常規編譯,您可以執行多個插件執行,一個打開注釋處理 ,另一個關閉。 配置如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5</version>
<executions>
<execution>
<id>process-annotations</id>
<phase>generate-sources</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<compilerArgs>
<arg>-proc:only</arg>
<arg>-processor</arg>
<arg>MyAnnotationProcessor</arg>
</compilerArgs>
</configuration>
</execution>
<execution>
<id>default-compile</id> <!-- using an id of default-compile will override the default execution -->
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<compilerArgs>
<arg>-proc:none</arg>
</compilerArgs>
</configuration>
</execution>
</executions>
</plugin>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.