Ant javadoc не дает результата при использовании набора файлов

#java #ant #javadoc

#java #ant #Javadoc

Вопрос:

Я пытаюсь собрать задачу ant javadoc, которая будет использовать вложенный набор файлов и не может заставить его выводить что-либо.

Вот что у меня есть

     <target name="javadoc_all"  description="">
    <cleanDir dir="${buildWorkingDir}/Javadocs/all" />

    <javadoc destdir="${buildWorkingDir}/Javadocs/all" classpathref="path4javadoc" Verbose="true"
             maxmemory="2048m" useexternalfile="yes" failonerror="no">
        <fileset dir="${buildInputDir}/Java/src" defaultexcludes="yes" casesensitive="no">
            <include name="com/pckg/**"/>
            <exclude name="**/test/**"/>
        </fileset>
    </javadoc>
</target>
 

На выходе я получаю кучу «[javadoc] Загрузка исходного файла», затем он заканчивается успехом сборки и ничего не выводится

Если я использую sourcepath в директиве javadoc для установки источника, все работает, но тогда я не могу управлять списком включения / исключения.

Я использую jdk 1.8.0_102

Любая помощь приветствуется!

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

1. Может быть, вы хотите попробовать без defaultexcludes атрибута?

2. Спасибо, никаких изменений, тот же результат.

3. Больше экспериментировал, похоже, что fileset работает только в том случае, если количество файлов, которые он охватывает, невелико. Для ограниченного набора генерируется javadoc, как только я превышаю определенное число, он завершается с ошибкой, ошибка не отображается.

4. Попробуйте запустить в режиме отладки и посмотрите, есть ли какие-либо подсказки.

5. Похоже, packageset делает в основном то, что мне нужно. Это позволяет исключать на уровне пакета / папки. Однако он не позволяет вам выбирать отдельные файлы для исключения. Похоже, он также работает независимо от того, сколько файлов задействовано.

Ответ №1:

Мое окончательное решение закончилось использованием нескольких наборов пакетов

         <packageset dir="${buildInputDir}/Java/src">
            <include name="**"/>
            <exclude name="**/test*/**"/>
        </packageset>
        <packageset dir="${buildInputDir}/MoreSourceFiles/src">
            <include name="**"/>
            <exclude name="**/test*/**"/>
        </packageset>
 

Это не идеально, поскольку не позволяет исключать по имени файла, только по имени пакета, но это было ближе всего к тому, что мне было нужно.