代码(步骤1和2):
<target name="compileAnnotationProcessor">
<javac destdir="${OUTPUT_DIR}"
debug="true"
failonerror="true"
includeantruntime="false"
classpath="${java.class.path}">
<src>
<pathelement path="${PROJECT_DIR}/tools/src"/>
</src>
<include name="/path/to/annotation/processor/package/**"/>
</javac>
</target>
<target name="generateFilesWithAPT" depends="compileAnnotationProcessor">
<javac destdir="${OUTPUT_DIR}"
includeantruntime="false"
listfiles="false"
fork="true"
debug="true"
verbose="true">
<src>
<pathelement path="${PROJECT_DIR}/common/src/"/>
</src>
<include name="/path/to/files/to/compile/**"/>
<classpath>
<pathelement path="${OUTPUT_DIR}"/>
<pathelement path="${java.class.path}"/>
</classpath>
<compilerarg line="-proc:only"/>
<compilerarg line="-processorpath ${OUTPUT_DIR}/path/to/annotation/processor/package/annProcessorImplement"/>
</javac>
</target>
实际上,第一个任务执行良好,并为注释处理器实现编译.class文件。它在第二个任务停止。
Ant说:请求不编译的注释处理,但未找到处理器。
我通常的做法是:
那么只要你对注解有依赖关系,注解处理器就会被自动拾取,而不需要任何额外的配置。
问题内容: 我可能只是看错了方向,但我发现有关批注处理的JSE文档非常稀疏。我想编写一个注释处理器,该处理器处理带注释的String字段和局部变量,以计算的String表达式替换它们。这应该不会太复杂,但是我对于Javax.annotation.processing的Javadoc却迷失了。 编辑:我需要在编译时处理批注,因为我想修改生成的代码。它应将带注释的常量String表达式替换为计算的St
问题内容: 我有一个自定义注释,它是Processor&ProcessorFactory。如何配置Ant构建文件,使得: 注释处理器应用于带注释的类,并在“ gen”文件夹内生成源文件 生成的源文件(通过注释处理)可以被项目中的其他源文件使用。 问题答案: 这不漂亮,但这是我要做的。(来源javac ant任务 javac手册页)使用compilerarg属性,我可以传入javac ant任务未直
我正在尝试创建一个自定义注释,例如,确保字段或方法既是又是,如果字段或方法既不是又不是,则会生成编译时错误,如以下示例所示: 到目前为止,我已经完成了两个自定义注释接口: 和: 正如所暗示的,我不知道如何生成编译时错误。Processor的文档清楚地表明我不应该抛出异常, 如果处理器抛出未捕获的异常,该工具可能会停止其他活动注释处理器。 它接着描述了当提出错误条件时会发生什么,现在是如何提出错误条
问题内容: 我正在尝试创建一个自定义批注,例如,以确保字段或方法为and ,并且如果该字段或方法不为and ,则将生成编译时错误,如以下示例所示: 到目前为止,我已经完成了两个自定义注释接口: 和: 如所示,我不知道如何生成编译时错误。Processor 的文档清楚地表明,我不应该抛出异常, 如果处理器抛出未捕获的异常,则该工具可能会停止其他活动的注释处理器。 它继续描述了引发错误条件时会发生
问题内容: 我有一个注释处理器,用于保留策略= SOURCE的注释。 我不知道如何逐步调试它。 运行mvn install,编译或打包或ant javac时,我已发布了打印语句,记录器信息,并且在编译日志中看到了它们的sysout。 但是,我不知道如何在Eclipse中逐步调试处理器。我的意思是,您如何逐步调试编译时? 问题答案: 您必须使用调试配置从Eclipse调用Java编译器(您需要从“调
问题内容: Android编译器如何工作?是否在编译时删除Java代码和Android XML文件中的注释? 问题答案: 将Java文件中的注释编译为类文件后,它们将被删除或忽略。类文件不是供人阅读的- 它们经过优化可以在虚拟机上高效运行。如果保留注释,它们只会导致类文件大于所需的大小,并且没有任何额外的好处(即,编译器和虚拟机不理解注释,因此为什么要包含它们) 对于XML文件,通常会保留注释。编