Как сделать так, чтобы класс Ant Javadoc исключал два файла?

Я документирую некоторые веб-сервисы Java и вспомогательные типы данных. Есть две службы, которые я не хочу документировать. Как правильно исключить небольшое количество файлов из задачи Ant javadoc?

Я пробовал несколько итераций, используя файлы или наборы файлов, вложенные в sourcepath или sourcefiles с различными комбинациями include и exclude.

Базовая цель, которую я правильно определил, документирует все мои веб-сервисы:

    <target name="javadoc.webservices" description="Generate the documentation for companyproject webservices">
    <delete dir="docs/webservices" failonerror="true"/>
    <mkdir dir="docs/webservices"/>
    <javadoc packagenames="com.company.project.webservices,com.company.project.models.*"
             defaultexcludes="yes"
             destdir="docs/webservices"
             author="true"
             version="true"
             use="true"
             windowtitle="company project Webservices">
        <doctitle><![CDATA[<h1>company project Webservices</h1>]]></doctitle>
        <bottom><![CDATA[<i>Copyright &#169; 2011 company Corp. All Rights Reserved.</i>]]></bottom>
        <sourcepath>
            <path location="companyproject-ejb/src/java"/>
            <path location="companyproject-models/src"/>
        </sourcepath>
        <classpath>
            <path refid="companyproject-models.module.classpath"/>
            <path refid="companyproject-ejb.module.classpath"/>
            <pathelement location="${companyproject-ejb.output.dir}"/>
        </classpath>
    </javadoc>
</target>

Некоторые варианты, которые я попробовал, включают:

<sourcefiles>
            <fileset dir="companyproject-ejb/src/java">
                <include name="**/*.java"/>
                <exclude name="**/*IntegrationTestWS*, **/*NhinInterfaceWS*"/>
            </fileset>
        </sourcefiles>

Это ошибки с javadoc.exe CreateProcess error=87, The parameter is incorrect

<sourcepath>
            <fileset dir="companyproject-ejb/src/java">
                <include name="**/*.java"/>
                <exclude name="**/*IntegrationTestWS*, **/*NhinInterfaceWS*"/>
            </fileset>
        </sourcepath>

Та же ошибка, что и у исходных файлов, но много сообщений о том, что skipping <somefile> since it is no directory,

Я пробовал похожие варианты, используя <files> вместо <fileset>,

Я думаю, что мне не хватает базового понимания того, как включает / исключает работы. Спасибо за помощь!

AlexR не совсем понял, но подошел ближе. Я удалил <sourcepath> и добавил

<fileset dir="./Companyproject-ejb/src/java/">
<include name="com/Company/project/webservices/*"/>
<exclude name="**/IntegrationTestWS*"/>
<exclude name="**/NhinInterfaceWS*"/>
</fileset>
<packageset dir="./Companyproject-models/src/">
    <include name="com/Company/project/models/**"/>
</packageset>

Наличие только набора файлов привело к тому, что javadoc пожаловался, что не может найти никаких пакетов. Packageset ведет себя как dirset, поэтому он не может исключать отдельные файлы, только каталоги. В этом случае я смог определить набор пакетов для одного набора документов и набор файлов для ограниченного набора и обойти его.

2 ответа

Решение

<fileset dir="src" defaultexcludes="yes">
  <include name="com/dummy/test/**"/>
  <exclude name="com/dummy/test/doc-files/**"/>
</fileset>

..................

Я думаю, что ваша ошибка - это теги "sourcefiles" и "sourcepath". Попробуйте удалить их. Для получения дополнительной информации посмотрите здесь: http://ant.apache.org/manual/Tasks/javadoc.html

Удачи!

Просто была такая же проблема и немного покопался в man javadoc прийти к выводу, что решения не существует, за исключением обходного пути, который сработал в случае ОП. Тем не менее, я хотел бы документировать то, что я прочитал из документов.

Муравьев javadoc задача - только обертка вокруг Java javadoc, так что последняя документация применяется. Особенно, javadoc кажется, есть две четко разделенные концепции генерации документации:

  1. пакеты документов
  2. документация отдельных классов

Для (1) мы указываем имена пакетов, такие как my.nice.package и -sourcepath помогать javadoc найти эти пакеты. Используя муравей, имена могут быть предоставлены как packagenames или как packageset где последний преобразует имена путей в имена пакетов (косая черта).

Для (2) мы указываем пути к файлам, возможно, с подстановочными знаками. Затем каждый отдельный файл документируется. С муравьем это делается через вложенный fileset, что позволяет нам исключать файлы.

Теперь кажется, что две вещи не очень хорошо играют вместе в javadoc,

а) При документировании пакетов нет средств для исключения отдельных файлов.

б) При документировании отдельных файлов пакеты не документируются, что приводит к сообщениям об ошибках о неправильных ссылках на имена пакетов при использовании {@link my.package},

Поиск документирования как пакетов, так и классов в man javadoc, чтобы увидеть, где я прочитал этот фрор.

Кажется, это проблема десятилетней давности:-(

Другие вопросы по тегам