【问题标题】:Why does Maven javadoc fail with error "cannot read options"?为什么 Maven javadoc 因错误“无法读取选项”而失败?
【发布时间】:2010-11-05 06:36:21
【问题描述】:

当我运行mvn javadoc:javadoc 时,我收到以下错误:

[错误] 构建错误 [信息] --------------------------------------------- ------------------------- [INFO] JavaDocs 报告生成发生错误:退出代码:1 - javadoc:错误 - 无法读取选项(系统找不到指定的文件) 命令行是:“C:\Program Files\Java\jdk1.6.0_14\jre\..\bin\javadoc.exe” @options @packages

当我在我的系统上调用命令 "C:\Program Files\Java\jdk1.6.0_14\jre..\bin\javadoc.exe" 时,它会运行 javadoc 可执行文件。

我正在跑步:

  • JDK 1.6.0_14
  • Maven 2.0.8

我的 POM 的 javadoc 报告部分如下所示:

org.apache.maven.pluginsmaven-javadoc-plugin插件> ...

以及相关的环境变量:

JAVA_HOME=C:\Program Files\Java\jdk1.6.0_14 M2_HOME=C:\Program Files\Apache 软件基金会\apache-maven-2.0.8 M2_REPO=C:\Documents and Settings\\.m2\repository // 是我的用户 MAVEN_OPTS=-XX:MaxPermSize=128m -Xmx512m

我尝试过重新安装 Java 和 Maven,以及使用 Maven 2.1.0、JDK 1.6.0_11,甚至 JDK 1.5.0_11。我将我的设置与一个环境几乎相同但没有问题的同事进行了比较。它曾经在大约一个月前工作,不,我不知道从那时起我的系统发生了什么变化。我第一次遇到它是在 JDK 1.6.0_11 中。这发生在我在我们的存储库中尝试过的每个项目上,我的同事对相同的项目没有任何问题。所以我很确定这只是我的环境,而不是项目本身。

我非常感谢您对此提出任何建议。

【问题讨论】:

    标签: java maven-2 javadoc maven-plugin


    【解决方案1】:

    我想通了,但首先我尝试了各种方法:

    • 卸载我系统上的所有 JDK 和 JRE,然后将 Java 重新安装到没有空格的路径
    • 删除我没有使用的所有环境变量,并清理我的 PATH
    • 将 Maven 和我的本地存储库重新定位到没有空格的目录
    • 重新启动(你永远不知道,这是 Windows)

    今天我尝试运行一个没有正确执行的批处理文件,我很快意识到当我双击它时,它正在执行文件而不是在它所在的目录中。然后它击中了我。

    几周前,我厌倦了我们的 IT 人员强迫我们的 cmd 窗口在 H: 打开,所以我在 Google 上搜索并使用 this page 来“修复它”。它似乎奏效了;几个星期以来我都没有遇到任何问题,而且我已经忘记了我的 cmd 窗口曾经都打开到某个 H: 驱动器。但是每个 cmd 窗口都打开到我指定的目录——无论是我运行“cmd”还是单击批处理文件,或者 Maven 打开了一个新的 cmd 窗口......

    我猜当 Maven 运行时它会执行javadoc 命令。所以 javadoc 部分正在工作,但由于工作目录错误,它找不到它写出的选项文件。

    所以,现在我回到H:,直到我弄明白为止。然后我会搞砸别的东西。但希望,如果没有别的,这会帮助别人......

    【讨论】:

    • 谢谢!我已经修改了我的 HKEY_CURRENT_USER\Software\Microsoft\Command Processor\Autorun 键,所以我不必每次打开命令提示符时都进入我的工作目录,这就是我的问题所在。
    【解决方案2】:

    我认为问题在于 javadoc 命令在没有任何参数的情况下运行。我在我的一个多模块项目中遇到了这个问题,它试图 javadoc 一个非 java 模块。 (父 pom 正在请求 javadoc。)

    有问题的模块是否需要制作 javadocs?我们终于移到了 maven 2.1.0 并且我没有看到问题再次出现。

    您的其他团队成员是否也在使用 maven 2.0.8?

    【讨论】:

    • 它发生在多模块和单模块项目中。在多模块项目上,它正确跳过不包含 Java 文件的父项目,并在包含 Java 文件的第一个模块上失败。团队中的其他人都在使用 2.0.8,因为当我们设置它时,Maven 2.0.9 中的发布插件存在问题。我已经尝试安装 2.1.0,但我还是得到了同样的错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多