使用javadoc忽略小错误

2022-06-06 00:00:00 javadoc java

我正在尝试使用javadoc从一个或两个下载的JAR文件生成文档(当然,在解压所有内容之后,还带有源代码)。

但是使用javadoc,即使是在Ant文件中,我也被阻止生成它,因为一些愚蠢的事情,特别是"Package XXX不存在"和"找不到符号"……我只想让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>

.但它仍然给出错误:1)找不到包,包括"org.codehaus.[xxx...]"和"javax.mail.[xxx...]"以及2)找不到符号(不过,如果我能解决缺少包的错误,这个问题可能会消失)。

nb据说构建成功,但我收到的投诉是没有找到源文件(其中确实有注释的.java文件),并且在javadoc下根本没有生成html。

继托尼·皮尔斯成功生成这些文档后

安装了Ant 1.9.6,相应地更改了路径,并检查以确保这是正在使用的版本...又试了一次。又失败了。这是我的输出的结尾:

[Javaoc] D:DesktopDownloadslogback-1.1.7.tarlogback-1.1.7logback-coresrc estjavachqoslogbackcoreappenderConsoleAppenderTest.java:32: 错误:包org.junit不存在
[javadoc]导入静态 Org.juit.Assert.assertEquals;
[javadoc]_
[javadoc]javadoc:错误-找不到公共或受保护的类 文件。
[javadoc]1错误
[javadoc]100个警告

构建成功总时间:2秒

它确实创建了javadoc文件夹...但这是空的。

nb关于上面的"包不存在"错误(还有许多其他错误):这个错误特别令人费解,因为我认为Ant在默认情况下不知何故包含了junit(nb我是Ant的新手,只是在操作中使用Ant)。

但是...使用Antjavac任务,您可以设置includeAntRuntime="true"...根据这本书,这使得Ant自己的junit.jar被包括在内。遗憾的是,javadoc任务不支持此属性。

以后仍

老实说,我的想法有点混乱:我发现从第三方源代码JAR编译javadoc的最简单方法就是提取,然后使用命令行,通常是:

Javadoc-d docs-Xmax警告10-XMaxerrs 10-Xdoclint:无-源路径 。-子包ch.qos.logback.core

.至于javadoc对于自己的代码,这在Gradle中似乎不是问题(我只是瞥了一眼Ant,意识到未来是Gradle...掌握基础知识并不是特别困难)。

nb如果您安装了适用于Eclipse的Gradle STS插件,然后使用Gradle STS向导创建一个新项目,则构建文件包含行

应用插件:‘eclipse’

.其效果之一是,默认情况下,所有第三方依赖项的源代码和可执行文件将在构建过程中下载到GRADLE_HOME下。很好!


解决方案

Java 8引入了doclint,它会将某些问题视为错误,而不会生成文档。可以通过指定命令行选项-Xdoclint:none来禁用此功能。

另见:Turning off doclint in JDK 8 Javadoc

例如,在Ant中,您需要向javadoc任务添加additionalparam="-Xdoclint:none"属性。Jaybird中的一个(略有修改)示例:

<target name="javadocs" depends="init,set-driver-sources">
    <mkdir dir="${build.docs}"/>
    <javadoc destdir="${build.docs}"
             author="true"
             version="true"
             windowtitle="${Name} API"
             doctitle="${Name}"
             extdirs="${module.thirdparty}"

             additionalparam="-Xdoclint:none"

             excludepackagenames="${excludedPackages}"
             bottom="Copyright &#169; 2001-2015 Jaybird (Firebird JDBC/JCA) team. All rights reserved.">
        <arg line="${java.module.arg}"/>
        <classpath refid="javac.driver.classpath"/>
        <sourcepath>
            <pathelement path="${source.java}"/>
            <pathelement path="${source.jna-client}"/>
        </sourcepath>
        <sourcepath refid="source.java.openoffice"/>
        <sourcepath refid="source.java.additional"/>
        <link href="http://docs.oracle.com/javase/7/docs/api/"/>
    </javadoc>
</target>

相关文章