为什么Maven javadoc失败并显示错误“无法读取选项”?

时间:2009-06-23 18:15:22

标签: java maven-2 javadoc maven-plugin

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

[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] An error has occurred in JavaDocs report generation:Exit code: 1 -
javadoc: error - cannot read options (The system cannot find the file specified)

Command line was:"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报告部分如下:

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
      </plugin>
      ...

相关环境变量:

JAVA_HOME=C:\Program Files\Java\jdk1.6.0_14
M2_HOME=C:\Program Files\Apache Software Foundation\apache-maven-2.0.8
M2_REPO=C:\Documents and Settings\<user>\.m2\repository //<user> is my user
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遇到它。这发生在我在我们的存储库中尝试过的每个项目中,我的同事对同一个项目没有任何问题。所以我很确定这只是我的环境而不是项目本身。

我真的很感激有关这方面的任何建议。

2 个答案:

答案 0 :(得分:7)

我想出来了,但首先我尝试了各种各样的事情:

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

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

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

我想当Maven运行它时会弹出来执行javadoc命令。所以javadoc部分正在工作,但它无法找到它写出的选项文件,因为工作目录是错误的。

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

答案 1 :(得分:0)

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

有问题的模块是否有javadocs?我们终于搬到了maven 2.1.0,我没有看到问题再次发生。

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