[英]How can I make an Ant Javadoc class exclude two files?
我正在记录一些Java Web服务和支持数据类型。 我不想记录两种服务。 从Ant javadoc任务中排除少量文件的正确方法是什么?
我已尝试使用嵌套在sourcepath或sourcefiles下的文件或文件集进行多次迭代,并使用include和exclude的各种组合。
我已正确定义的基本目标记录了我的所有Web服务:
<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>
与sourcefiles相同的错误,但有很多消息说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,因此它不能排除单个文件,只能排除目录。 在这种情况下,我能够为一组doco定义一个包集,并为限制集定义一个文件集并绕过它。
<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
挖掘了一点,得出的结论是没有解决方案,除了碰巧在OPs情况下工作的解决方法。 但我想记录我从文档中读到的内容。
Ant的javadoc
任务只是Java的javadoc
的包装器,所以后者的文档适用。 特别是, javadoc
似乎有两个完全分离的生成文档的概念:
对于(1),我们指定包名称,如my.nice.package和-sourcepath
以帮助javadoc
找到这些包。 使用蚂蚁,名称可以被提供为packagenames
或作为packageset
其中后者转换路径名包名(斜线DOT)。
对于(2),我们指定文件路径,可能使用通配符。 然后记录每个单独的文件。 使用ant,这是通过嵌套fileset
,它允许我们排除文件。
现在看来,两个东西在javadoc
并不能很好地结合在一起。
a)记录包时,无法排除单个文件。
b)记录单个文件时,不会记录包,这会导致在使用{@link my.package}
时出现有关包名错误引用的错误消息。
在man javadoc
搜索文件包和类 ,以查看我在哪里阅读这篇文章。
这是十年之久的问题 ,似乎:-(
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.