Как сделать так, чтобы класс 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 © 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) мы указываем имена пакетов, такие как my.nice.package и -sourcepath
помогать javadoc
найти эти пакеты. Используя муравей, имена могут быть предоставлены как packagenames
или как packageset
где последний преобразует имена путей в имена пакетов (косая черта).
Для (2) мы указываем пути к файлам, возможно, с подстановочными знаками. Затем каждый отдельный файл документируется. С муравьем это делается через вложенный fileset
, что позволяет нам исключать файлы.
Теперь кажется, что две вещи не очень хорошо играют вместе в javadoc
,
а) При документировании пакетов нет средств для исключения отдельных файлов.
б) При документировании отдельных файлов пакеты не документируются, что приводит к сообщениям об ошибках о неправильных ссылках на имена пакетов при использовании {@link my.package}
,
Поиск документирования как пакетов, так и классов в man javadoc
, чтобы увидеть, где я прочитал этот фрор.
Кажется, это проблема десятилетней давности:-(