Java 21とDevuan 5(Debian 12)でのMaven:手動でのインストール

概要

ApacheMavenは、Java(そして他のプログラミング言語も)のプロジェクトをビルド・管理するための人気のあるオープンソースソフトウェアで、Apache-2.0ライセンスの下で公開されています。

Devuan5 DaedalusDebian12 bookwormをベースにしている)では、パッケージ管理のおかげで使いやすいです。しかし、必ずしも最新版を提供しているわけではありません。実際、現時点でDebian 12が提供しているMavenは3.8であるのに対し、3.9です。では、これが大きな問題でしょうか?おそらく、違います。

私の前の投稿では、最新のOpenJDK 21をDevuan 5に手動でインストールしました。ここでは、Mavenも手動でインストールする方法を示します。
もちろん、apt install mavenを実行するのはもっと簡単です 🫣

環境

  • OS: Devuan 5 Daedalus
    • Debian 12をベースにしている
  • アプリエンジン: OpenJDK 21
  • プロジェクトビルドと管理: Apache Maven 3.9.5

チュートリアル

あなたのPATHがJava 21のbinを含むようにして、それが他のJavaバージョン(例えば17、以前のLTS版)のbinよりも前にくるようにしておきます。

Apache Mavenパッケージを入手

以下を訪れてください: https://maven.apache.org/download.cgi

例えば以下のコマンドラインを使ってバイナリを入手してください:

$ curl -LO https://dlcdn.apache.org/maven/maven-3/3.9.5/binaries/apache-maven-3.9.5-bin.tar.gz

ダウンロードを確認するには、サーバーとローカルのチェックサムを比較してください。例えば、以下のコマンドラインを使います:

$ echo "$(curl -s https://downloads.apache.org/maven/maven-3/3.9.5/binaries/apache-maven-3.9.5-bin.tar.gz.sha512) apache-maven-3.9.5-bin.tar.gz" | \
      sha512sum -c
apache-maven-3.9.5-bin.tar.gz: OK

つまり、サーバーのチェックサムがローカルのものと等しいことが確認されました:

$ # ダウンロードしたファイルのチェックサム
$ sha512sum apache-maven-3.9.5-bin.tar.gz
4810523ba025104106567d8a15a8aa19db35068c8c8be19e30b219a1d7e83bcab96124bf86dc424b1cd3c5edba25d69ec0b31751c136f88975d15406cab3842b  apache-maven-3.9.5-bin.tar.gz

ファイルを配置

解凍します:

$ tar xzf apache-maven-3.9.5-bin.tar.gz

結果は以下のようになります:

$ ls {.,apache-maven-3.9.5}
.:
apache-maven-3.9.5/            apache-maven-3.9.5-bin.tar.gz
(...)

apache-maven-3.9.5:
bin/  boot/  conf/  lib/  LICENSE  NOTICE  README.txt

これでbinなどを含むapache-maven-3.9.5ディレクトリを手に入れました👍

環境変数を設定

Maven binを含むようにPATHを更新します:

$ # bashの場合
$ export PATH=$(readlink -f ./apache-maven-3.9.5/bin):$PATH
$ # fishの場合
$ #set -x PATH $(readlink -f ./apache-maven-3.9.5/bin/):$PATH

結論

これでApache Mavenが手元にあります:

$ mvn --version
Maven home: /(...)/apache-maven-3.9.5
Java version: 21, vendor: Oracle Corporation, runtime: /(...)/jdk-21
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "6.1.0-13-amd64", arch: "amd64", family: "unix"

例として"maven-example-01"というプロジェクトを作成し、実行してみましょう:

$ # プロジェクトを作成
$ mvn archetype:generate \
      -DarchetypeArtifactId=maven-archetype-quickstart \
      -DinteractiveMode=false \
      -DgroupId=com.myexample.app \
      -DartifactId=maven-example-01

$ # ファイルが生成されました
$ cat src/main/java/com/myexample/app/App.java
パッケージ com.myexample.app;

/**
 * こんにちは、世界!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
    }
}

$ # ビルドする
$ mvn package

$ # 実行する
$ java -cp \
      target/maven-example-01-1.0-SNAPSHOT.jar \
      com.myexample.app.App
Hello World!

やったね 🙌

こちらの記事はdev.toの良い記事を日本人向けに翻訳しています。
https://dev.to/nabbisen/maven-on-java-21-and-devuan-5-debian-12-install-manually-4he5