Mavenキホンのキ

★★★ Live配信告知 ★★★

9/10のPS Live配信は、Ansibleの概要・特徴から始め、Ansibleでどのような改善、自動化ができるかについて、よくある運用パターンを紹介しながらお話します。
【2021/9/10(金) 17:00〜17:30】

こんにちは、サイオステクノロジー武井です。今回は、Mavenについて書こうとおもっております。でもMavenの細かい話は抜きにして、なんでそんなもん必要なのっていうところに重点を置いて、書きたいと思います。

gradleとかもありますが、未だにまだMavenって現役ですよね?っておもっていますので、きっとこの記事が誰かの役に立つと思います。

Mavenって?

Javaのソースコードのコンパイルやビルドの手順を簡単にしてくれて、さらにライブラリの依存性を解決した上で、中央集権的に管理されたリポジトリからライブラリを簡単に取得出来るツールです。

Mavenを使わないとどうなるか?

先の説明では、少々、というか全然わからないと思います。私も初めてMavenを学んだときは、Mavenの使い方が書いてある本や記事はあったのですが、そもそもその必要性がよくわかりませんでした。そこから説明してほしかったなーと思います。

ということで、まずはMavenを使わないでいろんなことをしてみたいと思います。

簡単なハロワを実行

まずは簡単なハロワ(Hello Worldと表示するプログラム)を作ってみます。

今回作成するハロワのディレクトリ構成とファイル群は下記のとおりです。

 

上記のソースコードの詳細は以下の通りです。

 

これを実行するためには、コンパイルが必要です。ということでコンパイルします。Person.classとHelloWorld.classの2つのファイルが出来上がります。

 

実行します。

 

手順をまとめると以下のような感じです。

  1. コンパイルする。
  2. 実行する

なかなかにめんどくさいですね。

簡単なハロワをjarにする

さて、先のハロワですが、他の環境で実行したいときに、わざわざPerson.classとHelloWorld.classの2つのファイルを持ち歩くのは面倒です。そこで、Javaにはjarという仕組みがあって、複数のクラスやその実行に必要な設定ファイルなどを一つのファイルにすることが出来ます。

ということで先程のハロワをコンパイルからやり直してみましょう。ということでコンパイルします。Person.classとHelloWorld.classの2つのファイルが出来上がります。

 

jarにします。tarコマンドとインターフェースが非常に似ています。同じディレクトリにhelloworld.jarというファイルが出来上がっているはずです。

 

jarからプログラムを実行してみましょう。

 

手順をまとめると以下のような感じです。

  1. コンパイルする
  2. jarにする
  3. 実行する

だんだん手順が増えてめんどくさくなりました。つらみー。

ログを出力出来るようにする

ハロワに簡単なログを出力出来るようにしましょう。そのためにはslf4jライブラリが必要になります。https://www.slf4j.org/のサイトから以下の2つをダウンロードします(バージョンは2021年6月21日時点での最新です)。

  • slf4j-api-1.7.9.jar
  • slf4j-simple-1.7.30.jar

そしてそのライブラリを以下のように配置します。

 

HelloWorld.javaを以下のように修正します。

 

コンパイルします。先程のslf4jライブラリを指定する必要があります。

 

jarにします。

 

実行します。

 

手順をまとめると以下のような感じです。

  1. ライブラリをダウンロードする。
  2. コンパイルする
  3. jarにする
  4. 実行する

もうつらい。

Mavenを使うとどうなるか?

ヽ(=´▽`=)ノ

Mavenは、今までMavenを使わない場合に実行してきた「ライブラリをダウンロードする」「コンパイルする」「jarにする」あたりを全部勝手にやってくれます。そういうツールなのです。ただし、Mavenの色々なお作法に従う必要があります。

お作法その1としては、ディレクトリ構成です。ということで、先に実行したハロワログ出力jar実行バージョンをMavenのお作法に合わせた構成にすると以下のようになります。

 

お作法その2としてはpom.xmlを書かなければいけないこととその書き方です。詳細は書籍とかを参照していただくとして、本記事ではその概要を説明します。

 

ではライブラリのダウンロード、コンパイル、jarの作成までやってみます。

 

すると、targetディレクトリ配下に以下のファイルが出来ていると思います。これらの中のHelloWorld-1.0-SNAPSHOT-jar-with-dependencies.jarというのが成果物です。

 

実行してみましょう。

あら、これだけ?

以下の手順になりました。あの複雑だった手順がマジシンプルに!!

  1. mavenでビルドする。
  2. 実行する。

まとめ

Mavenのお作法に従ったディレクトリ構成にソースを置いて、pom.xmlを定義するだけで、ビルドやライブラリのダウンロードなど面倒なことを全てやってくれるのです。とっても便利ですね。





ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!


ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

Be the first to comment

Leave a Reply

Your email address will not be published.


*