DEV Community

nabbisen
nabbisen

Posted on • Originally published at scqr.net

1 1

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

はじめに

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

イェイ 🙌

Do your career a big favor. Join DEV. (The website you're on right now)

It takes one minute, it's free, and is worth it for your career.

Get started

Community matters

Top comments (0)

Great read:

Is it Time to go Back to the Monolith?

History repeats itself. Everything old is new again and I’ve been around long enough to see ideas discarded, rediscovered and return triumphantly to overtake the fad. In recent years SQL has made a tremendous comeback from the dead. We love relational databases all over again. I think the Monolith will have its space odyssey moment again. Microservices and serverless are trends pushed by the cloud vendors, designed to sell us more cloud computing resources.

Microservices make very little sense financially for most use cases. Yes, they can ramp down. But when they scale up, they pay the costs in dividends. The increased observability costs alone line the pockets of the “big cloud” vendors.

👋 Kindness is contagious

Discover a treasure trove of wisdom within this insightful piece, highly respected in the nurturing DEV Community enviroment. Developers, whether novice or expert, are encouraged to participate and add to our shared knowledge basin.

A simple "thank you" can illuminate someone's day. Express your appreciation in the comments section!

On DEV, sharing ideas smoothens our journey and strengthens our community ties. Learn something useful? Offering a quick thanks to the author is deeply appreciated.

Okay