我已经编写了一些Struts2 taglib,并希望将它们打包成jar。 我没有使用maven所以我曾经使用带有struts-annotations-1.0.5.jar的apt标签的Ant。 我的任务如下所示
<target name="generate-taglib" >
<apt classpathref="tags.classpath" factorypathref="tags.classpath"
srcdir="StrutsTags" compile="false" destdir="dist/apt" fork="true"
preprocessdir="bin" verbose="false" source="1.5" encoding="utf-8"
factory="org.apache.struts.annotations.taglib.apt.TLDAnnotationProcessorFactory" includeantruntime="false">
<compilerarg value="-AtlibVersion=1.0" />
<compilerarg value="-AjspVersion=2.0" />
<compilerarg value="-AshortName=mb" />
<compilerarg value="-Auri=/struts-my-tags" />
<compilerarg value="-Adescription='My Struts Tags'" />
<compilerarg value="-AdisplayName='My Struts Tags'" />
<compilerarg value="-AoutTemplatesDir=${basedir}/dist/taglib-doc" />
<compilerarg value="-AoutFile=${basedir}/bin/META-INF/struts-my-tags.tld" />
</apt>
</target>
但是,由于java 6 apt已被删除或不受支持,我想在Java编译器中使用Annotation Processor。但我找不到任何直接的例子,我想出了以下
<target name="generate-taglib" depends="compile">
<javac destdir="bin"
debug="true"
failonerror="true"
compiler="javac1.6"
srcdir="StrutsTags" includeantruntime="false" encoding="utf-8" verbose="true">
<include name="**/*.java"/>
<classpath refid="tags.classpath"/>
<compilerarg line="-proc:only"/>
<compilerarg line="-processor org.apache.struts.annotations.taglib.apt.TagAnnotationProcessor" />
<compilerarg line="-s dist/apt" />
<compilerarg line="-source 6"/>
<compilerarg value="-AtlibVersion=1.0.1" />
<compilerarg value="-AjspVersion=2.0" />
<compilerarg value="-AshortName=mb" />
<compilerarg value="-Auri=/struts-my-tags" />
<compilerarg value="-Adescription='My Struts Tags'" />
<compilerarg value="-AdisplayName='My Struts Tags'" />
<compilerarg value="-AoutTemplatesDir=${basedir}/dist/taglib-doc" />
<compilerarg value="-AoutFile=${basedir}/bin/META-INF/struts-my-tags.tld" />
</javac>
</target>
当我运行此任务时,任务成功完成,但struts-my-tags.tld中没有生成任何内容。
有人能告诉我什么错了吗?
答案 0 :(得分:0)
处理器是针对APT接口实现的。 所以约会永远不会奏效。 我移植了APT版本以实现新的Java Annotation Processor