Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法从maven项目中删除java注释处理器_Java_Maven_Annotation Processing - Fatal编程技术网

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

无法从maven项目中删除java注释处理器,java,maven,annotation-processing,Java,Maven,Annotation Processing,我将要重构我的脏注释处理器。因此,我想创建一个新的,从旧的中提取一些责任 old:com.company.coma.shared.annotation.ComaToolAnnotationProcessor 新增:com.company.coma.shared.annotation.ToolProcessor 现在,我已经从pom.xml中的配置中删除了旧的配置 pom.xml <plugin> <groupId>org.apache.maven.

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

old: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>
这是怎么回事?即使我从整个项目中删除了它的任何名称,它怎么还能找到这个呢


编辑#1:停用整个注释处理插件(maven编译器)也无济于事。我不明白发生了什么事。似乎我不再影响依赖项或配置。

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

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


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

您有一个需要的依赖项it@Zoe是的,我知道-我正在寻找这种依赖关系,但即使在处理器名称的项目范围内使用grep,也找不到任何东西。我还没有生成任何META-INF文件夹,因为编译没有成功。如果您使用maven,我想你可以在你的src文件夹中有一个META-INF文件夹,它将在编译时被复制。不过,情况可能不是这样。您可以随时签出源代码的新副本并创建一个新项目,以查看问题是否仍然存在。正如我所说,这是旧的、未使用的工件的问题
[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