我在运行Ant构建脚本(Ant 1.8.2,Java 1.6)时收到此警告.
[javac] warning: Implicitly compiled files were not subject to annotation processing. [javac] Use -proc:none to disable annotation processing or -implicit to specify a policy for implicit compilation. [javac] 1 warning
添加< compilerarg value =“implicit”/>生产:
[javac] error: Class names,'implicit',are only accepted if annotation processing is explicitly requested [javac] 1 error
添加< compilerarg value =“proc:none”/>生产:
[javac] javac: invalid flag: proc:none [javac] Usage: javac <options> <source files> [javac] use -help for a list of possible options
有人可以了解警告意味着什么,我该如何摆脱它?
解决方法
我创建了一个简单的build.xml
<?xml version="1.0" encoding="UTF-8"?> <project name="test" default="build" basedir="."> <target name="build"> <javac destdir="bin" srcdir="." includes="**/*.java"> </javac> </target> </project>
public class T { @TestAnn public void test() { } }
ant命令的输出与第一个输出相同.我尝试执行javac命令来编译它,但是错误:找不到符号@TestAnn被打印.我不知道为什么消息不同.
然后我添加注释类并再次运行ant命令.构建成功没有警告.
对于您的问题,可能的原因是:
> java代码引用自定义注释,但找不到注释类
>基于the ANNOTATION PROCESSING seciton of javac,如果注释需要处理器.但是他们的jar不包含服务提供者配置文件.您应该指定-processorpath或-processor选项,以便javac可以找到合适的处理器.