Maven无法找到javadoc命令。

14

我正在尝试运行maven verify命令,但出现了这个错误。

MavenReportException: Error while generating Javadoc: Unable to find javadoc command: The environment variable JAVA_HOME is not correctly set.

Maven 找不到 javadoc 命令,因此无法创建文档。

有趣的是,我可以运行 mvn javadoc:jar 命令并且它成功工作。此外,我的 JAVA_HOME 指向了正确的位置。

$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home

这是来自pom文件。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>3.0.0-M1</version>
    <configuration>
        <additionalparam>-Xdoclint:none</additionalparam>
    </configuration>
    <executions>
        <execution>
              <id>attach-javadoc</id>
              <phase>verify</phase>
              <goals>
                 <goal>jar</goal>
              </goals>
        </execution>
    </executions>
</plugin>
请不要告诉我这是与问题无法找到javadoc命令-maven的重复。 我知道问题是相同的,但我们的情况不同,而且我的JAVA_HOME指向正确的位置。 因此,那个解决方案对我不起作用。

你使用 maven-java-plugin 版本 3.0.0-M1 而不是3.0.0,有什么好的理由吗?此外,你使用的是哪个 Maven 版本?你能展示完整的 pom 文件吗? - khmarbaise
MavenReportException: 生成Javadoc时出错:无法找到javadoc命令:javadoc可执行文件'/Library/Java/JavaVirtualMachines/jdk-12.0.2+10/Contents/Home/../bin/javadoc'不存在或不是文件。请验证<javadocExecutable/>参数。 - Oleksii Kyslytsyn
2个回答

17

我在Java 9.0.4和macOS上遇到了同样的问题,在maven-javadoc-plugin中添加以下配置后,问题得到解决。

  <configuration>
     .....
     <javadocExecutable>${java.home}/bin/javadoc</javadocExecutable>
  </configuration>

4
哇,那真是胡说八道。当错误提示要求确保JAVA_HOME已正确设置(而且它确实已经设置好了!),但你仍然需要修改一个库中的.pom文件时...真气人。无论如何,你的答案在Ubuntu上对我有效。谢谢! - mozzbozz
非常感谢!这也解决了我在Windows上的问题。为什么不将其默认设置而是使用来自操作系统的JAVA_HOME呢? - Tiemo Vorschütz
1
这也解决了我在Windows上使用IntelliJ的问题。我甚至在IntelliJ设置中的maven设置中双重检查了JAVA_HOME环境变量。非常令人沮丧。 - Sleepybear

12

对于JDK版本1.8、9、11、12、14、15、16、17:

<build>
    <plugins>
        <!-- ... -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <!--<version>3.2.0</version>-->
            <configuration>
                <javadocExecutable>${java.home}/bin/javadoc</javadocExecutable>
                <!--<doclint>none</doclint>-->
            </configuration>
        </plugin>
        <!-- ... -->
    </plugins>
</build>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接