はじめに
Apache Maven は広く使われているオープンソースのソフトウェアです。Java のプロジェクトの (さらには他のプログラミング言語のものでも) ビルドおよび管理を行えます。Apache-2.0 でライセンスされています。
Devuan 5 Daedalus は Debian 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
サーバーとローカルのチェックサムを比較することで、ダウンロード結果を検証できます。一例ですが、以下のコマンドで実施できます:
$ 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
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
おわりに
これで 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
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!
イェイ 🙌