【问题标题】:Maven compiler plugin issue with custom annotation processor自定义注释处理器的 Maven 编译器插件问题
【发布时间】:2021-11-27 22:17:54
【问题描述】:

我已经编写了一个自定义注释处理器并配置了 maven 编译器插件,如下所示,我面临Immutables 注释处理器的问题,它位于我的应用程序类路径中。当我通过 Maven 编译器插件添加我的注释处理器时,Immutables 给出了编译错误。我的项目中也需要不可变对象。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version>
    <configuration>
        <source>${java.version}</source>
        <target>${java.version}</target>
        <generatedSourcesDirectory>${project.build.directory}/generated-sources/</generatedSourcesDirectory>
        <annotationProcessors>
            <annotationProcessor>
                org.smarttechie.TraceAnnotationProcessor
            </annotationProcessor>
        </annotationProcessors>
    </configuration>
</plugin>

任何使用不可变/任何注释处理器以及我的自定义注释处理器的提示。

【问题讨论】:

    标签: maven annotations maven-plugin annotation-processing immutables-library


    【解决方案1】:

    将您的注释处理器打包到一个 JAR 中,并将该 JAR 作为 编译依赖。务必添加 META-INF/services/javax.annotation.processing.Processor 到你的 JAR (内容与您的处理器类名称单行):

    org.smarttechie.TraceAnnotationProcessor
    

    如果您不希望将新 JAR 作为生成的依赖项包含在内 神器,将其标记为 prodied 和/或 true。

    【讨论】:

    • 当我添加具有自定义注释处理器的 jar 时,在编译期间不会像通过 maven 插件添加它时那样调用注释处理器。依赖范围只是编译。
    • 抱歉,我疏忽了一步。我已经更新了我的答案。
    猜你喜欢
    • 2017-03-01
    • 2016-06-26
    • 1970-01-01
    • 2013-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    • 1970-01-01
    相关资源
    最近更新 更多