如果没有-source-path选项,ASDoc Ant Task如何工作?

时间:2008-10-13 20:45:18

标签: flex ant asdoc

我想让ASDoc Ant task工作:

<target name="asdoc" depends="compile">
    <mkdir dir="${dist_asdocs}"/>
    <asdoc 
    docSources="${srcdir}"
    output="${dist_asdocs}"
    executable="${FLEX_HOME}/bin/asdoc.exe" />
</target>

当我运行它时,我从ASDoc收到错误,如“错误:未找到类型或不是编译时常量:XXX”。当我手动运行ASDoc时,我做:“asdoc -source-path src -doc-sources src”。如果我省略-source-path值,我会得到相同的错误......那么我应该如何让Ant任务起作用呢?

2 个答案:

答案 0 :(得分:3)

好吧,我无法测试它,因为它仅针对Windows实现(尝试执行asdoc.exe)。

但是我已经为asdoc缺少ant任务写了我自己的解决方案:

<exec executable="${FLEX_HOME}/bin/asdoc" dir="${basedir}">
    <arg value="-source-path"/>
    <arg path="${basedir}/src"/>

    <arg value="-doc-sources"/>
    <arg path="${basedir}/src"/>

    <arg value="-output"/>
    <arg path="${DOC_DIR}"/>

    <arg value="-main-title"/>
    <arg path="${ant.project.name} Documentation"/>

    <arg line="-library-path+=${basedir}/libs"/>
</exec>

当然,如果你在Windows上,你必须将可执行文件更改为asdoc.exe。我不知道你是否还需要替换所有/用\或者如果蚂蚁为你做这个。如果不使用库路径中尚未存在的任何.swcs,则可以省略最后一个。或者至少你必须将它改为指向正确的目录。

编辑:我查看了source code of the asdoc-task,它与我的exec-task基本相同,它只允许一小部分命令行参数。

我也在没有source-path参数的情况下测试了我的解决方案,令我惊讶的是仍然工作。我做了一些进一步的测试,这是我发现的:

如果未指定source-path,则asdoc(.exe)将src视为默认值。因此,如果您使用该约定(例如Flex Builder执行此操作),asdoc-task通常会起作用,但如果不这样做则会失败。

因此,要使用asdoc-task,您必须为源目录src命名。

答案 1 :(得分:1)

我建议不要使用asdoc ant任务,因为自从我第一次发布它以来我没有进一步开发它。正如Simon所提到的,它只支持可能的一小部分,因此您最有可能更好地使用exec任务。