【なんでも研究日誌】Ubuntu20.04にMavenをインストールする

Ubuntu20.04にMavenをインストールする方法について調査及び研究し、その成果をまとめています。

 

基本

基本は下記のコマンドでインストールできるのですが、OpenJDK17を使って、下記のコマンドでインストールするMavenのバージョンが3.6.3だと、iDempiereのソースコードをビルドする時にエラーになりますので、手動で最新版のMavenをインストールのをオススメします。

◆準備

sudo apt update

◆インストール

sudo apt install maven

◆確認

mvn -version

手動でのインストール

基本的に上記のコマンドで簡単にインストールできるのですが、Ubuntu20.04で、OpenJDK17を使って、Mavenのバージョンが3.6.3だったりすると、iDempiereのソースコードをビルドすると下記のようなエラーに遭遇します。

[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.c 

これは、iDempiereが悪いというわけではなく、Mavenの不具合だと思われます。

Maven crashes when trying to compile a project "Error executing Maven."

これを回避するのため、最新版をダウンロードして手動でセットアップします。

2022年5月時点の最新版は、3.8.5ですので、3.8.5を/opt/にインストールしていきます。

・ダウンロード先のディレクトリに移動

cd /opt

・ファイルをダウンロード

wget https://downloads.apache.org/maven/maven-3/3.8.5/binaries/apache-maven-3.8.5-bin.tar.gz

・ファイルを解凍

tar -xzvf apache-maven-3.8.5-bin.tar.gz

・扱いやすいようにリネーム

mv /opt/apache-maven-3.8.5 /opt/apache-maven

・javaのパスの確認

which java

以下、javaのパスは"/usr/bin/java"を想定

・パスの追加

cat << "EOF" >> ~/.bash_profile

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

export PATH=$PATH:/opt/apache-maven/bin

EOF

・適用

source ~/.bash_profile

・直接ファイルを編集する際のコマンド

nano ~/.bash_profile

参考