9

When running 'maven install', I get the following..

[INFO] [javadoc:javadoc {execution: default}] [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] An error has occurred in JavaDocs report generation:Exit code: 1 - java.lang.NullPointerException at com.sun.tools.doclets.formats.html.PackageUseWriter.generatePackageUse(PackageUseWriter.java:180) at com.sun.tools.doclets.formats.html.PackageUseWriter.generatePackageList(PackageUseWriter.java:124) at com.sun.tools.doclets.formats.html.PackageUseWriter.generatePackageUse(PackageUseWriter.java:110) at com.sun.tools.doclets.formats.html.PackageUseWriter.generatePackageUseFile(PackageUseWriter.java:99) at com.sun.tools.doclets.formats.html.PackageUseWriter.generate(PackageUseWriter.java:78) at com.sun.tools.doclets.formats.html.ClassUseWriter.generate(ClassUseWriter.java:116) at com.sun.tools.doclets.formats.html.HtmlDoclet.generateOtherFiles(HtmlDoclet.java:92) at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.startGeneration(AbstractDoclet.java:122) at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.start(AbstractDoclet.java:64) at com.sun.tools.doclets.formats.html.HtmlDoclet.start(HtmlDoclet.java:42) at com.sun.tools.doclets.standard.Standard.start(Standard.java:23) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:269) at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:143) at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:340) at com.sun.tools.javadoc.Start.begin(Start.java:128) at com.sun.tools.javadoc.Main.execute(Main.java:41) at com.sun.tools.javadoc.Main.main(Main.java:31)

Command line was: /home/fsl/jdk1.6.0_12/jre/../bin/javadoc @options @packages @argfile

What am I doing wrong?

4

5 回答 5

13

此外,如果您有:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.9.1:jar (default-cli) on project coolproject-api: MavenReportException: Error while creating archive:
[ERROR] Exit code: 1 - javadoc: warning - No source files for package org.coolproject.api
[ERROR] javadoc: warning - No source files for package org.coolproject.api
[ERROR] javadoc: warning - No source files for package org.coolproject.api.listeners
[ERROR] javadoc: error - No public or protected classes found to document.

Java 编译器理解具有包样式名称的源目录,例如:

coolproject-api/java/org.coolproject.api/

它没有问题,但maven-javadoc-plugin没有。因此,尝试将您的“物理”包布局更改为:

coolproject-api/java/org/coolproject/api/
于 2014-02-18T09:39:45.817 回答
3

要在 maven-javadoc-plugin 中删除 -use 选项,请使用以下配置:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <configuration>
                <use>false</use>
                <links>
                    <link>http://java.sun.com/javase/6/docs/api/</link>
                </links>
            </configuration>
        </plugin>
于 2011-03-31T11:18:28.710 回答
1

有一个未修复的错误似乎是您的问题。从错误描述中,已知的解决方法是删除 -use 选项或使用 JDK 1.4.2。您使用的是 Java 6,所以可能就是这种情况。

NullPointerException 发生的行是:

printHyperLink("", pkg.name(), Util.getPackageName(pkg), true);

那么问题可能是由于您的 package.html 文件中的拼写错误而发生的?

于 2009-08-10T12:44:34.850 回答
1

从那个错误报告中,当一个人在默认包中有类并且 -use 开启时,就会发生这种情况。因此,一种解决方案是将默认包中的类移动到命名包中。

恼人的是,这个错误在一些发行版(例如 MacOS X Lion)的 javadoc 工具中没有得到修复。

至少从源代码的检查来看,该错误似乎已在 openjdk 6 中得到修复。该源的下载地址为:http: //download.java.net/openjdk/jdk6/

于 2012-06-04T02:43:12.437 回答
0

查看您的环境变量并删除该CLASSPATH变量或添加您的包路径。

javadoc使用类路径来确定包。如果路径不在您的变量中,它将失败。

于 2013-08-08T07:50:51.320 回答