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

nabbisen - Oct 15 '23 - - Dev Community

はじめに

Apache Maven は広く使われているオープンソースのソフトウェアです。Java のプロジェクトの (さらには他のプログラミング言語のものでも) ビルドおよび管理を行えます。Apache-2.0 でライセンスされています。

Devuan 5 DaedalusDebian 12 bookworm をもとにつくられている Linux ディストロです。Devuan を使っている場合、パッケージ管理 の恩恵で、Maven のインストール自体は難しいものではありません。しかしながら常に最新のものが使えるとは限りません。実際、Debian 12 から提供されている Maven は今日時点で 3.8 です。3.9 ではありません。まぁ、とは言うものの、それは重要なことでしょうか ? おそらくそうでは無いですよね。

私は 一つ前の記事OpenJDK 最新の 21 を Devuan 5 に手動でインストールしました。今度はここで Maven を手動でインストールする方法を紹介します。
もちろん apt install maven を実行する方がラクだよなぁと思いつつ、です 🫣

環境

  • OS: Devuan 5 Daedalus
    • ベースは Debian 12 bookworm
  • App Engine: OpenJDK 21
  • プロジェクトのビルドおよび管理: Apache Maven 3.9.5

チュートリアル

前提として、PATH に Java 21 の bin が含まれていて、それは他のバージョンの Java、例えば (一つ前の LTS である) 17 等よりも先に現れるものとします。

Apache Maven パッケージの取得

公式 Web サイトが出発点になります: 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
Enter fullscreen mode Exit fullscreen mode

サーバーとローカルのチェックサムを比較することで、ダウンロード結果を検証できます。一例ですが、以下のコマンドで実施できます:

$ 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
Enter fullscreen mode Exit fullscreen mode

上は、サーバーのチェックサムがローカルと一致することが確認できた、ということを意味します:

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

ファイル群の配置

展開します:

$ tar xzf apache-maven-3.9.5-bin.tar.gz
Enter fullscreen mode Exit fullscreen mode

結果は以下の通りでした:

$ 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
Enter fullscreen mode Exit fullscreen mode

apache-maven-3.9.5 ディレクトリを手に入れました。中に bin その他が含まれています 👍

環境変数の設定

PATH を更新して、Maven の bin を追加します:

$ # 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
Enter fullscreen mode Exit fullscreen mode

おわりに

これで 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"
Enter fullscreen mode Exit fullscreen mode

サンプルのプロジェクトをつくってみましょう。名前は "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
package com.myexample.app;

/**
 * Hello world!
 *
 */
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!
Enter fullscreen mode Exit fullscreen mode

イェイ 🙌

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .