我在运行 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>
使用引用自定义注释的简单 .java。但不提供源代码。
public class T {
@TestAnn
public void test() {
}
}
ant命令的输出与您的第一个输出相同。我尝试执行 javac 命令来编译它,但是打印了 error: cannot find symbol @TestAnn
。我不知道为什么消息不一样。然后我添加注释类并再次运行
ant 命令。构建成功,没有任何警告。
对于您的问题,可能的原因是:
-processorpath
或
-processor
选项,以便javac 可以找到合适的处理器。