Генерация ASDoc через Ant

#apache-flex #asdoc

#apache-flex #asdoc

Вопрос:

У меня есть ant-скрипт для компиляции и генерации файла AIR, и он работает хорошо. Теперь я также использую ASDocs в ant-скрипте, чтобы автоматически генерировать документацию всякий раз, когда я генерирую новый файл AIR.

Хотя задача mxmlc, которая создает мой swf-файл, выполняется гладко, моя задача asdoc в ANT выдает ошибки. Я продолжаю получать ошибки типа:

compileASDoc: [asdoc] Загрузка файла конфигурации D:4.14.1frameworksair-config.xml
[asdoc] ALPHA.as (3): ошибка col: 35:
Определение панели базового класса не найдено.
[asdoc]
[asdoc] открытый класс ExtendPanel расширяет панель
[asdoc] ^
[asdoc]
[asdoc] XYZABC.mxml(-1): Ошибка: дублируется определение функции.
[asdoc]
[asdoc] < ?xml version=»1.0″ encoding= «utf-8»?>
[asdoc]
[asdoc] XYZABC.mxml(-1): Ошибка: существует конфликт с определением linkbutton1 во внутреннем пространстве имен.
[asdoc]
[asdoc] < ?xml version=»1.0″ encoding=»utf-8″?>
[asdoc]
[asdoc] GHIJKL.mxml(-1): Ошибка: существует конфликт с определением linkbutton1 во внутреннем пространстве имен.
[asdoc]
[asdoc] < ?xml version=»1.0″ encoding=»utf-8″?>
[asdoc]

Я не могу понять, почему возникают эти ошибки. Мой ant-скрипт очень похож на приведенный ниже:

 <!-- Run the ASDoc executable and generate the ASDocs to the new output folder -->
<target name="compileASDoc" depends="clean, init">

    <condition property="asdoc.jvm.args" value="-Xmx384m">
        <os family="windows"/>
    </condition>

    <condition property="asdoc.jvm.args" value="-Xmx512m">
        <os family="mac"/>
    </condition>

    <condition property="asdoc.jvm.args" value="-Xmx512m">
        <os family="unix"/>
    </condition>

    <asdoc output="${Asdoc.dir}" lenient="true" failonerror="true" warnings="false" 
        strict="false" fork="true"
        left-frameset-width="300"
        main-title='${Main.title}'
        footer="${Footer.text}"
        window-title="Custom asdoc documentation" >

        <doc-sources path-element="${SRC_DIR}" />
        <doc-sources path-element="${IMAGES_DIR}" />
        <doc-sources path-element="${SOME_LOCALE}/en_US" />
        <doc-sources path-element="${SOME_LOCALE}/ar_AE" />

        <load-config filename='${FLEX_HOME}/frameworks/air-config.xml'/>

        <!-- top level class to include in asdoc -->
        <doc-classes class="AIRFrameworkClasses"/>
        <doc-classes class="AIRSparkClasses"/>
        <doc-classes class="FlexClasses"/>
        <doc-classes class="SparkClasses"/>
        <doc-classes class="FrameworkClasses"/>
        <!--    <doc-classes class="HaloClasses"/> -->
        <doc-classes class="OSMFClasses"/>
        <doc-classes class="SparkSkinsClasses"/>
        <doc-classes class="RPCClasses"/>
        <doc-classes class="flashx.textLayout.CoreClasses"/>
        <doc-classes class="flashx.textLayout.EditClasses"/>
        <doc-classes class="flashx.textLayout.ConversionClasses"/>

        <!-- source path for asdoc -->
        <compiler.source-path path-element="${flexlib}/projects/airframework/src"/>
        <compiler.source-path path-element="${flexlib}/projects/airspark/src"/>
        <compiler.source-path path-element="${flexlib}/projects/flex/src"/>
        <compiler.source-path path-element="${flexlib}/projects/spark/src"/>
        <compiler.source-path path-element="${flexlib}/projects/framework/src"/>
        <compiler.source-path path-element="${flexlib}/projects/sparkskins/src"/>
        <compiler.source-path path-element="${flexlib}/projects/osmf/src"/>
        <compiler.source-path path-element="${flexlib}/projects/rpc/src"/>
        <compiler.source-path path-element="${flexlib}/projects/textLayout/src"/>

        <!-- namespaces to include in asdoc -->
        <doc-namespaces uri="http://www.adobe.com/2006/airmxml"/>
        <doc-namespaces uri="http://www.adobe.com/2006/airspark"/>
        <doc-namespaces uri="library://ns.adobe.com/flex/spark"/>
        <doc-namespaces uri="http://www.adobe.com/2006/mxml"/>
        <doc-namespaces uri="http://www.adobe.com/2006/rpcmxml"/>
                    <doc-namespaces uri="library://ns.adobe.com/flashx/textLayout"/>  
                    <doc-namespaces uri="http://ns.adobe.com/mxml/2009"/>
        <namespace uri="library://ns.adobe.com/flashx/textLayout" manifest="${flexlib}/projects/textLayout/manifest.xml"/>

        <!-- namespace declaration for asdoc -->
        <namespace uri="http://www.adobe.com/2006/airmxml" manifest="${flexlib}/projects/airframework/manifest.xml"/>
        <namespace uri="http://www.adobe.com/2006/airspark" manifest="${flexlib}/projects/airspark/manifest.xml"/>
        <namespace uri="http://www.adobe.com/2006/rpcmxml" manifest="${flexlib}/projects/rpc/manifest.xml"/>
        <namespace uri="http://www.adobe.com/2006/mxml" manifest="${flexlib}/mxml-manifest.xml"/>
        <namespace uri="library://ns.adobe.com/flex/spark" manifest="${flexlib}/projects/spark/manifest.xml"/>
        <namespace uri="library://ns.adobe.com/flex/mx" manifest="${flexlib}/mxml-manifest.xml"/>  
                    <namespace uri="http://ns.adobe.com/mxml/2009" manifest="${flexlib}/mxml-2009-manifest.xml"/>

        <library-path/>

        <external-library-path dir="${flexlib}/libs">
            <include name="*.swc" />
        </external-library-path>

                    <external-library-path dir="${flexlib}/libs/air">
            <include name="*.swc" />
        </external-library-path>

        <external-library-path dir="${LIBS_DIR}">
            <include name="*.swc" />
        </external-library-path>

        <external-library-path dir="${LOCALE_DIR}">
            <include name="*.swc" />
        </external-library-path>

        <external-library-path dir="${AR_LOCALE_DIR}">
            <include name="*.swc" />
        </external-library-path>

        <jvmarg line="${asdoc.jvm.args}"/>

        <define name="CONFIG::debug" value="false"/>
        <define name="CONFIG::release" value="true"/>
        <define name="CONFIG::FLASH_10_1" value="false"/>
        <define name="CONFIG::LOGGING" value="false"/>
    </asdoc>
    <echo>Docs creation complete</echo>
</target>
  

Я написал этот скрипт после просмотра build.xml внутри папки asdoc в папке FLEX_HOME.

Любые подсказки о том, почему я получаю ошибки и как я могу их устранить, будут высоко оценены!

С уважением,
Рави.

Комментарии:

1. Кроме того, при использовании скрипта ant, описанного выше, я получаю ошибку с файлом mxml, содержащим это утверждение: <fx: идентификатор объекта = «abc»>. Ошибка гласит, что не удалось найти реализацию для fx: Object. Итак, я включил пространство имен для fx ( ns.adobe.com/mxml/2009 ) и сопоставил его с mx-manifest.xml . Если я сопоставлю это с mx-manifest.xml Я НЕ получаю ошибку панели, указанную выше в сообщении, но я получаю ошибку fx: реализация объекта не найдена. Если я использую пространство имен fx для mxml-2009-manifest.xml затем я получаю ошибку панели, а не ошибку fx: Object.

2. когда addint дополнительно детализирует ваш вопрос, вполне допустимо отредактировать вопрос, чтобы добавить их.

Ответ №1:

Я смог самостоятельно выяснить, в чем ошибка. Исходный путь не указывал на мои исходные файлы!

Нет необходимости указывать doc-классы и упоминать встроенные классы flex, такие как spark и т.д. В xml. Кроме того, пространство имен является избыточным и может быть исключено.

Итак, в приведенном выше XML-файле просто удалите все теги doc-classes, doc-namespaces, namespace и compiler.source-path. И добавьте один, который указывает на ваш исходный каталог!