无法从maven项目中删除java注释处理器

时间:2017-12-31 12:00:06

标签: java maven annotation-processing

我即将重构我的脏注释处理器。因此,我想创建一个新的,以从旧的职责中提取一些责任。

:com.company.coma.shared.annotation.ComaToolAnnotationProcessor
:com.company.coma.shared.annotation.ToolProcessor

现在我已经从我的pom.xml中的配置中删除了旧的

的pom.xml

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.5.1</version>
        <configuration>
            <generatedSourcesDirectory>
                ${project.build.directory}/generated-sources/
            </generatedSourcesDirectory>
            <annotationProcessors>
                <annotationProcessor>
                    com.company.coma.shared.annotation.ToolProcessor
                </annotationProcessor>
                <!--<annotationProcessor>-->
                    <!--com.company.coma.shared.annotation.ComaToolAnnotationProcessor-->
                <!--</annotationProcessor>-->
            </annotationProcessors>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
    </plugin>

我还 删除了 ComaToolAnnotationProcessor.java 文件,然后重建了整个项目。

这仍然是我的clean install

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.5.1:compile (default-compile) on project module-foo: Compilation failure
[ERROR] Annotation processor 'com.company.coma.shared.annotation.ComaToolAnnotationProcessor' not found

这里发生了什么?即使我从整个项目中删除了它的任何内容,它怎么能仍然寻找呢?

编辑#1 :停用整个注释处理插件(maven-compiler)也无济于事。我不明白发生了什么。好像我不再对依赖关系或配置产生影响了。

2 个答案:

答案 0 :(得分:0)

您可能(手动或非手动)将处理器添加到META-INF/services文件中。因此,它将尝试运行它,并在找不到指定的类时失败。我相信删除引用可能会解决问题:)

答案 1 :(得分:0)

我发现了问题。我最近改名为我的一个父模块。但实际包含要处理的文件的子模块仍然引用旧的父工件。这样我认为新父母的所有配置都不会影响任何事情。非常奇怪,因为旧的父模块完全从我的项目结构中消失了,但肯定仍然可以在我的maven仓库中使用。

我非常依赖IDE的模块名称重构功能。