服务配置文件不正确, 或构造处理程序对象javax.annotation.processing.Processor

来自ling
跳转至: 导航搜索

https://www.cnblogs.com/coder-chi/p/11316136.html

坑:服务配置文件不正确 我们在开发完进行编译,很快会在控制台发现这行错误

错误: 服务配置文件不正确, 或构造处理程序对象javax.annotation.processing.Processor: XXX could not be instantiated: java.lang.NoClassDefFoundError: XXX 时抛出异常错误 为什么呢?因为注解处理器在启动的时候,注解处理器本身还没有编译,所以找不到。WTF。

那么,同学们,怎么才能解决这个“鸡生蛋,蛋生鸡”的问题呢?

第一,把这个类拆到单独的Jar包里面,不要让它干扰到需要扫描的项目里。

第二,在这个单独的项目里,引入声明,表示,这个项目不要用注解处理器扫描。

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.0.2</version>
                <executions>
                    <execution>
                        <id>default-compile</id>
                        <configuration>
                            <compilerArgument>-proc:none</compilerArgument>
                            <source>1.8
                           <target>1.8</target>
                       </configuration>
                   </execution>
               </executions>
           </plugin>
       </plugins>
   </build>

</source> 这样才能让这个类编译成功,并且让它在其他项目编译的时候生效。