Я пытаюсь заставить ASDoc Ant задача работать:
<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?





Что ж, я не могу его протестировать, потому что он реализован только для Windows (пытается запустить asdoc.exe).
Но я написал собственное решение для отсутствия задачи ant для asdoc:
<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>
Конечно, вы должны изменить исполняемый файл на asdoc.exe, если вы работаете в Windows. Я не знаю, нужно ли вам также заменить все / на \ или муравей сделает это за вас. Последнее можно опустить, если вы не используете какие-либо .swcs, которых еще нет в пути к библиотеке. Или, по крайней мере, вам нужно изменить его, чтобы он указывал на правильный каталог.
Редактировать: Я посмотрел на исходный код asdoc-задачи, и по сути это то же самое, что я делаю с моей задачей exec, только позволяет лишь небольшую часть аргументов командной строки.
Я также протестировал свое решение без аргумента пути к источнику, и, к моему удивлению, по-прежнему сработал. Я провел дополнительное тестирование, и вот что я обнаружил:
Если исходный путь не указан, asdoc (.exe) принимает src по умолчанию. Таким образом, asdoc-задача обычно работает, если вы используете это соглашение (например, Flex Builder делает это), но не работает, если вы этого не сделаете.
Итак, чтобы использовать asdoc-task, вы должны назвать свой исходный каталог src.
Я бы посоветовал не использовать задачу asdoc ant, поскольку я не развивал ее с тех пор, как впервые выпустил ее. Как упоминал Саймон, он поддерживает лишь небольшую часть того, что возможно, поэтому вам, скорее всего, будет лучше использовать задачу exec.