При компиляции проекта Maven выдает ошибку

ОС Linux - Ubuntu 20.04.2 LTS При компиляции проекта Maven выдает ошибку

      [ERROR] Error executing Maven.
[ERROR] java.lang.IllegalStateException: Unable to load cache item
[ERROR] Caused by: Unable to load cache item
[ERROR] Caused by: Could not initialize class com.google.inject.internal.cglib.core.$MethodWrapper

Java-версия

      openjdk version "17" 2021-09-14 LTS
OpenJDK Runtime Environment (build 17+35-LTS)
OpenJDK 64-Bit Server VM (build 17+35-LTS, mixed mode, sharing)

mvn -версия

      Apache Maven 3.6.3
Maven home: /usr/share/maven
Java version: 17, vendor: BellSoft, runtime: /usr/lib/jvm/bellsoft-java17-amd64
Default locale: ru_RU, platform encoding: UTF-8
OS name: "linux", version: "5.11.0-37-generic", arch: "amd64", family: "unix"

java -XshowSettings:properties -версия 2>&1 > /dev/null | grep 'java.home'

      java.home = /usr/lib/jvm/bellsoft-java17-amd64

4 ответа

Я столкнулся с той же проблемой. К сожалению, я мог просто обновиться до 3.6.3 через менеджер пакетов, поэтому я установил его вручную. Шаги по установке на Ubuntu ниже:

Maven 3.3+ требует установки JDK 1.7 или выше.

Загрузите Apache Maven. Я установил 3.8.4, последнюю версию можно проверить здесь: https://maven.apache.org/download.cgi

Сохраняем архив в /tmp

      $ TMP_MAVEN_VERSION=3.8.4
$ wget https://apache.org/dist/maven/maven-3/$TMP_MAVEN_VERSION/binaries/apache-maven-$TMP_MAVEN_VERSION-bin.tar.gz -P /tmp

Затем распакуйте его в /optи удалить архив

      $ sudo tar xf /tmp/apache-maven-*.tar.gz -C /opt
$ sudo rm /tmp/apache-maven-*-bin.tar.gz

Далее создаем сим-ссылку

      $ sudo ln -s /opt/apache-maven-$TMP_MAVEN_VERSION /opt/maven

Наконец, мы настраиваем env

      $ sudo echo "export JAVA_HOME=/usr/lib/jvm/default-java
export M2_HOME=/opt/maven
export MAVEN_HOME=/opt/maven
export PATH=${M2_HOME}/bin:${PATH}" >> /etc/profile.d/maven.sh

Чтобы использовать его без перезагрузки, мы делаем его исполняемым и запускаем в

      $ sudo chmod +x /etc/profile.d/maven.shsource /etc/profile.d/maven.sh
$ source /etc/profile.d/maven.sh

Теперь вы можете убедиться, что он правильно установлен

      $ mvn -v
Apache Maven 3.8.4 (9b656c72d54e5bacbed989b64718c159fe39b537)
Maven home: /opt/maven
Java version: 11.0.13, vendor: Ubuntu, runtime: /usr/lib/jvm/java-11-openjdk-amd64
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "5.11.0-1022-aws", arch: "amd64", family: "unix"

получено

Та же проблема, с которой я столкнулся. И я получил решение. Обновите последнюю версию maven 3.8.3. С последним maven он работает.

mvn -v
 Apache Maven 3.8.3 (ff8e977a158738155dc465c6a97ffaf31982d739)
Главная страница Maven: /opt/maven
Версия Java: 17, производитель: Private Build, среда выполнения: /usr/lib/jvm/java-17-openjdk-amd64
Язык по умолчанию: en_IN, кодировка платформы: UTF-8.
Название ОС: «linux», версия: «5.10.0-1051-oem», архитектура: «amd64», семейство: «unix»

Я встретил ту же ошибку, что и вы. моя версия ОС ubuntu 20.04 LTS.

причина в том, что версия maven (3.6.3) устарела.

загрузите последнюю версию bin (apache-maven-3.8.6-bin.zip) с https://maven.apache.org

я распаковываю файлы в /data/app/maven/3.8.6/apache-maven-3.8.6/bin

с помощью такой команды export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64/ && /data/app/maven/3.8.6/apache-maven-3.8.6/bin/mvn

это хорошо работает на моей машине

По состоянию на 25.10.2021 maven не поддерживает Java 17.

Создавать vi ~/.mavenrcфайл и дайте любую версию ниже 17.

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

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