JS док с муравьем - PullRequest
       12

JS док с муравьем

0 голосов
/ 03 февраля 2010

Я пытаюсь заставить муравья запустить мой инструментарий jsdoc. После того, как я создаю свой build.xml из examples на сайте, я получаю следующее:

<taskdef name="jsdoctoolkit" classname="uk.co.darrenhurley.ant.tasks.JsDocToolkit" classpath="/jsdoc/jsrun.jar;/jsdoc/java/classes/js.jar"/>

Когда я запускаю #ant, я получаю следующую ошибку:

/pathto/jsdoc_toolkit-2.3.2/build.xml:1: Unexpected element "{}taskdef" {antlib:org.apache.tools.ant}taskdef

Поскольку я теперь Java-разработчик, я могу только догадываться, что мое имя класса (которое я взял с веб-сайта) неверно. Но теперь я понимаю, чем его заменить.

Может кто-нибудь помочь мне с этим?

Ответы [ 2 ]

1 голос
/ 27 февраля 2012

Мне не очень повезло, пытаясь заставить работать jsdoctoolkit . К счастью, довольно просто запустить JSDoc Toolkit непосредственно из Ant, не используя задачу.

<property name="source.dir" value="source" />
<property name="doc.dir" value="docs" />

<property name="tool.dir" value="tools" />

<property name="jsdoctoolkit.dir" value="${tool.dir}/jsdoc_toolkit-2.4.0/jsdoc-toolkit" />


<target name="docs" description="Generates documentation">
    <sequential>
        <delete dir="${doc.dir}"/>
        <mkdir dir="${doc.dir}" />

        <echo message="Running JSDoc Toolkit"/>

        <!-- The java exe is told to run in the dir where our source files reside.
                 If we instead ran it from the dir that the build file is in and gave it
                 full paths to the source files the documentation would include the full
                 filesystem paths (c:\path\to\source\) instead of relative ones.
                 Since this command is running in the source dir, all of the paths
                 given to it must first traverse down a level (../) to get back to the
                 build file dir.
        -->
        <exec executable="java" dir="${source.dir}">
            <arg line="-jar ../${jsdoctoolkit.dir}/jsrun.jar ../${jsdoctoolkit.dir}/app/run.js" />
            <!-- -d tells JSDoc toolkit where to output the documentation -->
            <arg line="-d=../${doc.dir}" />
            <!-- use the default template -->
            <arg line="-t=../${jsdoctoolkit.dir}/templates/jsdoc" />
            <!-- Create an arg element for each file you want to include in the documentation -->
            <arg line="my-javascript-file.js" />
            <arg line="another-javascript-file.js" />
            <arg line="subdir/yet-another-javascript-file.js" />
        </exec>
    </sequential>
</target>

Эта цель предполагает, что проект имеет следующую структуру каталогов:

build.xml
docs/
source/
    my-javascript-file.js
    another-javascript-file.js
    subdir/
        yet-another-javascript-file.js
tools/
    jsdoc_toolkit-2.4.0/
        jsdoc-toolkit/
            jsrun.js
            app/
                run.js
0 голосов
/ 03 февраля 2010

Ваше непосредственное предположение, вероятно, будет неверным.Ошибка XML, с которой вы столкнулись, говорит о том, что анализатор обнаружил ваш элемент <taskdef> в неправильном месте в структуре XML.Фактически, в этот момент даже не удосужился заглянуть внутрь самого элемента, поэтому ваш атрибут classname не может быть проблемой.

Как говорит Пойнти, попробуйте опубликовать весь ваш XML -или хотя бы посмотрите сами и убедитесь, что элемент <taskdef> расположен правильно.Он должен быть на верхнем уровне тега <project>.Если он вложен в другие элементы, это недопустимо и не будет работать.

Обычно ваш файл сборки может выглядеть примерно так:

<project name="MyProject" default="dist" basedir=".">
    <description>
        simple example build file
    </description>
  <!-- set global properties for this build -->
  <property name="src" location="src"/>
  <property name="build" location="build"/>
  <property name="dist"  location="dist"/>

  <taskdef name="jsdoctoolkit" classname="uk.co.darrenhurley.ant.tasks.JsDocToolkit" classpath="/jsdoc/jsrun.jar;/jsdoc/java/classes/js.jar"/>

  <!-- Rest of file... -->

Во всех случаях, если выпереместите строку taskdef от того места, где она находится сейчас, прямо под строку <project> в верхней части файла, я надеюсь, что это решит вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...