#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
, которая не содержит javac2. я исправил это, теперь он указывает на правильный, но все равно не может запуститься
mvn deploy -P release
3. Проблема в том, что я не могу изменить
JAVA_HOME
переменную mvn -version