Javaアプリケーションのビルド
ビルドとは
ビルドとは、ソースコードを実行可能な
アプリケーションに変換する一連の作業のことです。
Javaであれば、.javaファイルをコンパイルして、.classファイルを生成する、
生成した.classファイルをjar、warなどのアーカイブファイルにまとめる作業を指します。
コンパイルって?
コンパイルとはソースコードを機械語に変換する作業のことです。
コンパイルにはソースコードの構文解析、最適化、コード生成などの工程があります。
構文解析ではJava文法に従ってソースコードを解析し、
文法に誤りがあるとコンパイル失敗となります。
この失敗のことを「コンパイルエラー」といいます。
Javaのように静的型付けといわれる言語では、
コンパイルを行うことで、ソースコードを事前に検証することができます。
コンパイルが通ることで最低限、構文エラーがないことが保証されます。
ビルドツール
実行可能なアプリケーションの作成を手動で行うことは大変労力が必要になります。
warファイルを作成するためには大まかに
- javaファイルをコンパイルして.classファイルを生成
- classファイルをwarファイルにまとめる
- リソースファイルをwarファイルに含める
- 外部ライブラリをwarファイルに含める
などの作業が必要になります。
アプリケーションの規模が大きく、ファイル数が増えるほど大変な作業のとなりますし、
外部ライブラリに関しては、ライブラリが依存しているライブラリも取得する必要があり
すべて人力で行うのは非現実的な作業となります。
そのため、ビルドツールを使ってビルドを自動化することが一般的です。
Javaのビルドツールには、
などがあります。
これらのビルドツールを使うことで、
ビルドの自動化や依存関係の解決などを行うことができます。
Javaのビルドツールとして現状はMaven、Gradleが主流となっています。
新規プロジェクトの場合はGradleを使うことが多いですが、
Mavenの仕組みの上に構築されている部分もあるため、
Maven・Gradleについての知識は必要です。
Antは古いビルドツールであり、Maven・Gradleが便利なため、
現在ではあまり使われていません。