MavenReportException: неправильно установлен JAVA_HOME

#java #maven #deployment #maven-plugin

#java #maven #развертывание #maven-плагин

Вопрос:

Я перепробовал много версий JDK, чтобы решить эту проблему, но, похоже, независимо от того, какую Java я использую, результат всегда один и тот же.

MavenReportException: Ошибка при создании архива: не удается найти команду javadoc: Неправильно установлена переменная среды JAVA_HOME.

Отладка

Это установленные в настоящее время jdk: введите описание изображения здесь

Я запустил :

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

export PATH=$JAVA_HOME/bin:$PATH

java -version :

 openjdk version "1.8.0_265"
OpenJDK Runtime Environment (build 1.8.0_265-8u265-b01-0ubuntu2~20.04-b01)
OpenJDK 64-Bit Server VM (build 25.265-b01, mixed mode)
  

javac -version

 javac 1.8.0_265
  

mvn clean deploy -выпуск P

введите описание изображения здесь

MavenReportException: Ошибка при создании архива: не удается найти команду javadoc: Неправильно установлена переменная среды JAVA_HOME.

Конфигурация плагина Maven

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <executable>${JAVA_HOME}/bin/javac</executable>
    </configuration>
</plugin>
  

Хотя which java и which javadoc указывает на /usr/bin , может ли это быть проблемой?

Редактировать 1

Содержимое /bin

введите описание изображения здесь

Комментарии:

1. Вы проверили, /usr/lib/jvm/java-8-openjdk-amd64/bin/ содержит javadoc ли он инструмент?

2. Это так, я обновляю вопрос с его помощью.

3. Удалите конфигурацию для javac в вашем плагине maven-compiler-plugin. Если JAVA_HOME установлен правильно, это просто лишнее. Проверьте, откуда поступает java через which java ?

4. Я сделал, но не изменил результат, which java дает /usr/bin/java

5. Удалите настройки из своего пути и установите только JAVA_HOME, которого нет в ПУТИ…

Ответ №1:

Я не знаю, помогает ли это, но в моем случае maven Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:3.2.0:jar и выдал исключение: MavenReportException: Error while generating Javadoc: Unable to find javadoc command: The environment variable JAVA_HOME is not correctly set.

Решение состояло в том, чтобы найти плагин, который вызывал проблему, <artifactId>maven-javadoc-plugin</artifactId> в моем случае и добавить следующее:

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

где ${java.home} был /usr/lib/jvm/java-11-openjdk-amd64/ .

Плагин выглядел как:

             <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <configuration>
                    <javadocExecutable>${java.home}/bin/javadoc</javadocExecutable>
                </configuration>
                <version>3.2.0</version>
                <executions>
                    <execution>
                        <id>attach-javadocs</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
  

и цель была выполнена успешно.

Ответ №2:

Пожалуйста, проверьте версию Java для Maven, используя следующую команду:

#mvn —version

Это даст что-то вроде:

Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-25T01:19:05 05:30) Maven home: /home/user/ apache-maven-3.5.3 Версия Java: 1.8.0_121, поставщик: корпорация Oracle Java home: /home/user/jdk1.8.0_121/ язык jre по умолчанию: en_IN, кодировка платформы: UTF-8

Здесь вы можете увидеть, какая версия JAVA используется и ее местоположение.

Комментарии:

1.Хотя переменная JAVA_HOME=/usr/lib/jvm/jdk1.8.0_261-amd64 mvn --version дает /usr/lib/jvm/java-11-openjdk-amd64 , которая не содержит javac

2. я исправил это, теперь он указывает на правильный, но все равно не может запуститься mvn deploy -P release

3. Проблема в том, что я не могу изменить JAVA_HOME переменную mvn -version