[英]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.