我正在记录一些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
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。
skipping <somefile> since it is no directory
我尝试使用<files>代替进行类似的变化<fileset>。
<files>
<fileset>
我想我对包含/排除的工作方式缺少一些基本的了解。谢谢您的帮助!
AlexR不太了解,但差一点就完成了。我删除<sourcepath>并添加了
<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的行为类似于目录集,因此它不能排除单个文件,而只能排除目录。在这种情况下,我可以为一组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
祝好运!