Javaビルド製品(Maven)を調べた!

Javaビルド製品(Maven)について調べたのでお伝えします。

MAVEN について

Mavenは、JAVAのビルド製品になります。プロジェクトをひとつのコマンドで利用できるなんて良いですよね。 インストール方法はあとで纏めるとして、基本的なことを記載します。

ビルドとコンパイルの違いは?

コンパイル

人間がプログラミング言語を用いて作成したソフトウェアの設計図(ソースコード)を、コンピュータ上で実行可能な形式 (オブジェクトコード)に変換すること。 そのためのソフトウェアをコンパイラという。 変換のみを一括して行い、生成したオブジェクトコードの実行は行わない。

ビルド  

ソースコードコンパイルやライブラリのリンクなどを行い、最終的な実行可能ファイルを作成すること。 また、そのような作業によって生成されたソフトウェアの版。

Mavenとは

Maven」とは、Javaプログラムをビルドするためのツール。

さまざまなプラグインを組み込むことによりソフトウェアテストツール、ソフトウェア保守ツール、ソフトウェア品質ツールの機能なども追加することが可能。

リモートリポジトリとローカルリポジトリの違いは?

プラグインやライブラリが置かれる場所です。 必要なプラグインやライブラリをリモートリポジトリからダウンロードし、それをローカルリポジトリに保存する仕様です。

下記は、Mavenアーキテクチャを表したものです。

桜

また、プロジェクトのライフサイクルに含まれるコンパイルやテストなどの各作業をコマンド一つで行うことができます

実現可能なこと


・ライブラリの一元管理 ・プロジェクト情報の配信 ・ビルドプロセスの提供(ソフトウェア構成管理) ・jUnitを使用した単体テストソフトウェアテスト) ・サイト生成機能を用いたプロジェクト情報の共有(ソフトウェア保守) ・FindBugsを使用したバグパターン検知(ソフトウェア品質)


大きな特徴

pom.xmlのタグにプロジェクトで使用したいJARライブラリ名及びバージョンを指定することで、外部サイトで集中管理されているJARを自動ダウンロードし、ローカルでビルドに使用が可能。

POMについて


pom.xmlはプロジェクトに関する情報を持つファイルです Project Object Modelの略です。


JARファイルとは

Javaのファイルを1つにまとめたファイル。 コンパイルされた複数のJavaバイトコード及びそれが使用する画像などのリソースを一つにまとめZIP形式で圧縮されたファイル、及びそれを出力するツール

JARファイルは、圧縮したままで、Javaの実行環境で動かすことができます。 zipファイル同様、圧縮・解凍ソフトで解凍できます。

その他のJAVAのビルド製品

Ant

Apache Software FoundationによってApache Software Licenseで提供されるオープンソースツール

よく利用するコマンド

プロジェクト作成

mvn -B archetype:generate \

プロジェクト作成

mvn -B archetype:generate \ -DarchetypeGroupId=org.apache.maven.archetypes \ -DgroupId=com.myapp \ -DartifactId=myapp

プロジェクト検証

mvn validate

コンパイル

mvn compile

コンパイル時はpom.xmlには、情報を追記

テストの実行

Junitテストクラスの実行

mvn test

パッケージ生成

mvn package JAR、WAR等の成果物を生成する。 packageを実行すればvaliate、compile、test、packageのフェーズも実行される

インストール

JARをローカルリポジトリにインストールする。

mvn install