【问题标题】:generating struts2 taglib using Java6 Annotation Processor with ant使用带有ant的Java6注释处理器生成struts2 taglib
【发布时间】:2013-04-05 00:31:13
【问题描述】:

我已经写了一些 Struts2 taglib 并且想将它们打包到一个 jar 中。 我没有使用 maven,所以我曾经使用带有 apt 标签和 struts-annotations-1.0.5.jar 的 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 编译器中使用注释处理器。但我找不到任何直接的例子,我想出了以下

<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 中没有生成任何内容。

谁能告诉我怎么了?

【问题讨论】:

  • 这可能是个问题:-AtlibVersion=1.0.1,这必须是一个有效的十进制值。尝试将其更改为 -AtlibVersion=1.1

标签: ant struts2 taglib apt


【解决方案1】:

处理器是针对 APT 接口实现的。 所以 about 永远不会奏效。 我移植了 APT 版本来实现新的 Java 注释处理器

struts-annotation-processor

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多