簡體   English   中英

如何通過maven 3.3運行注釋處理?

[英]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-sourcesgenerate-test-sources階段而不是在compiletest-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM