我正在尝试使用javadoc从一个或两个已下载的jar文件(当然,是在提取了所有内容后)生成文档。
但是由于一些愚蠢的原因(特别是“包XXX不存在”和“找不到符号”),即使在Ant文件中使用javadoc,我也被阻止生成文档。我只想让javadoc将这些事物(外部引用)的文本放入html文档中,但同时还要记录找到的所有.java文件...
值得注意的是,对于任何感兴趣的人,这是我正在尝试生成API文档的下载页面,其中包含下载文件(包含源代码):http://logback.qos.ch/download.html
在Mark Rotteveel的帮助下,我的Ant构建文件现在看起来像这样:
<?xml version="1.0" ?>
<project name="document logback core" default="doc">
<target name="doc">
<mkdir dir="javadoc" />
<property name="excludedPackages"
value="org.codehaus.*,javax.mail.*"/>
<javadoc destdir="javadoc" sourcepath="src" packagenames="main.*"
excludepackagenames="${excludedPackages}"
additionalparam="-Xdoclint:none" />
</target>
</project>
...但仍然出现错误,其中包括“org.codehaus.[xxx...]”和“javax.mail.[xxx...]”未找到的包,以及符号未找到(尽管如果我可以解决丢失的软件包错误,则可能会消失)。
NB构建被认为是成功的,但我收到关于找不到源文件(其中确实有注释的.java文件)的投诉,并且在\javadoc下根本没有生成任何html。
稍后,跟随Tony Pierce成功生成这些文档
安装了Ant 1.9.6,相应地更改了路径,检查以确保使用的是该版本...再试一次。又失败了。这是我的输出结尾:
[javadoc]D:\Desktop\Downloads\logback-1.1.7.tar\logback-1.1.7\logback-core\src\test\java\ch\qos\logback\core\appender\ConsoleAppenderTest.java:32: error: package org.junit does not exist
[javadoc] import static org.junit.Assert.assertEquals;
[javadoc]_______________________^
[javadoc] javadoc: error - No public or protected classes found to document.
[javadoc] 1 error
[javadoc] 100 warnings
BUILD SUCCESSFUL Total time: 2 seconds
它确实创建了javadoc文件夹...但是这是空的。
NB关于上面的“包不存在”错误(还有许多其他错误):我想Ant默认情况下以某种方式包括junit(NB我是Ant的完全新手,只是通过“Ant in Action”进行工作)。
但是...使用Ant javac
任务,您可以设置 includeAntRuntime =“true”
...根据这本书,这会包含Ant自己的 junit.jar
。不幸的是, javadoc
任务不支持此属性。
后来还有
说实话,我的思维有点混乱:我发现从第三方源jar编译javadoc的最简单方法就是通过提取然后使用命令行,通常为:
javadoc -d docs -Xmaxwarns 10 -Xmaxerrs 10 -Xdoclint:none -sourcepath . -subpackages ch.qos.logback.core
...至于自己的代码的 javadoc
似乎在Gradle中没有问题(我只瞥见了Ant,意识到未来是Gradle...掌握基础并不特别困难)。
NB如果在Eclipse中安装Gradle STS插件,然后使用Gradle STS向导创建新项目,则构建文件包含以下行:
apply plugin: 'eclipse'
...其中的一个影响是默认情况下,在构建期间下载所有第三方依赖项的源以及可执行文件,这非常好!
classpath
元素(因此您在类路径上具有依赖项)或link
元素(在我的情况下指向JDK API文档)。@mikerodent https://github.com/FirebirdSQL/jaybird/blob/master/build/init.xml#L198 - Mark Rotteveel