Maven не может найти команду javadoc

Я пытаюсь запустить команду 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 25.03.2018 12:55

MavenReportException: ошибка при создании Javadoc: невозможно найти команду javadoc: исполняемый файл javadoc '/Library/Java/JavaVirtualMachines/jdk-12.0.2+10/Contents/Ho‌ me /../ bin / javadoc' не существует или это не файл. Проверьте параметр <javadocExecutable />

Oleksii Kyslytsyn 25.07.2019 17:55
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
11
2
9 166
2

Ответы 2

У меня была такая же проблема с java 9.0.4 и macOs, и добавление следующей конфигурации в плагин javadoc решило ее для меня

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

Вау, это чушь собачья. Когда в сообщении об ошибке говорится, что нужно убедиться, что JAVA_HOME установлен правильно (и это так!), И вам все равно нужно изменить файл .pom в одной из библиотек ... grrr. Как бы то ни было, ваш ответ сработал и на Ubuntu. Спасибо!

mozzbozz 02.04.2019 22:57

Большое спасибо! Решил мою проблему и в Windows. Почему это не установлено по умолчанию, а не используется JAVA_HOME из ОС ??

Tiemo Vorschütz 15.12.2020 13:23

Это также устранило мою проблему в Windows с использованием IntelliJ. Я даже дважды проверил переменную среды JAVA_HOME в настройках maven в настройках IntelliJ. Очень неприятно.

Sleepybear 19.05.2021 01:06

Для версий 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>

Другие вопросы по теме