ksaitoの日記

日々試したことの覚え書き

Mavenのオフシャルコンテナを使ってmvnコマンドをすぐ使えるようにする

移転しました。

自動的にリダイレクトします。

Mavenは、DockerHubでオフシャルコンテナを公開しています。
このコンテナを使って、LinuxのDocker環境で、いつでもmvnを実行できるようにしました。

下記のようなシェルを$HOME/bin/mvnに準備して事項権限をつけます。

$ cat ~/bin/mvn
#! /bin/bash

docker run -it --rm \
       -u $(id -u):$(id -g) \
       -v $HOME/.m2:/var/maven/.m2 \
       -v "$(pwd)":/usr/src/mymaven \
       -e MAVEN_CONFIG=/var/maven/.m2 \
       -w /usr/src/mymaven \
       maven:3.6.3-jdk-11-openj9 \
       mvn -Duser.home=/var/maven $*
$ chmod +x ~/bin/mvn

あとは、普通にmvnコマンドを実行するだけです。
JDKmavenのインストールは不要です。
初回は、下記のようにコンテナをダウンロードします。

$ mvn -v
Unable to find image 'maven:3.6.3-jdk-11-openj9' locally
3.6.3-jdk-11-openj9: Pulling from library/maven
a1125296b23d: Already exists 
3c742a4a0f38: Already exists 
4c5ea3b32996: Already exists 
1b4be91ead68: Already exists 
262049cebf1b: Pull complete 
5ad2d62fe9e8: Pull complete 
ff29c42fd76a: Pull complete 
dbb173a54a45: Pull complete 
eef609065721: Pull complete 
Digest: sha256:4d35cebbd4eb96206e83391b08f1a92f25464eed1c558bec624a44bbc269feba
Status: Downloaded newer image for maven:3.6.3-jdk-11-openj9
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/share/maven
Java version: 11.0.8, vendor: AdoptOpenJDK, runtime: /opt/java/openjdk
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.19.76-linuxkit", arch: "amd64", family: "unix"
$ type java
-bash: type: java: 見つかりませ
$