当Java 8 JavaDoc达到常量值时,它会因IllegalArgumentException而失败

时间:2017-07-06 14:49:43

标签: java maven intellij-idea javadoc

在我的Java Maven项目中,我使用的是Java 8 JDK(v1.8.0_112),Maven 3和maven-javadoc-plugin v2.10.4。

我的代码如下(缩小):

public class DummyData {

    public static final String USE_CURSOR = "&useCursor";

    // fields, constructor, methods omitted...

}

在生成JavaDoc uing Maven目标时,会出现以下错误

1 error
[ERROR] MavenReportException: Error while generating Javadoc: 
Exit code: 1 - javadoc: error - com.sun.tools.doclets.internal.toolkit.util.DocletAbortException: java.lang.IllegalArgumentException: "&useCursor"

Command line was: "C:\Program Files\Java\jdk1.8.0_112\jre\..\bin\javadoc.exe" @options @packages

Refer to the generated Javadoc files in 'C:\Users\xan\git\Demo\demo\target\apidocs' dir.

org.apache.maven.reporting.MavenReportException: 
Exit code: 1 - javadoc: error - com.sun.tools.doclets.internal.toolkit.util.DocletAbortException: java.lang.IllegalArgumentException: "&useCursor"

你知道为什么这是一个问题吗? 我最好的猜测是'&'混淆JavaDoc但不知道如何做替代的字符(不改变常量)?

由于

1 个答案:

答案 0 :(得分:1)

搜索报告的错误,我发现一些结果表明存在同样的问题。

Eclipse JavaDoc Generation fails with IllegalArgumentException?

Javadoc creation failes with IlegalArgumentExpection

根据这些帖子,CLASSPATH变量可能存在问题。由于您使用的是Eclipse,因此构建和生成javadoc不需要在IDE之外进行进一步配置。

建议的解决方案是清除CLASSPATH变量(set classpath=)。希望它有助于解决问题。