MavenとGradleってなあに?「デイトラJava中級編34 ビルドツール解説」で学んだ内容を解説

デイトラJava
ハック
ハック

こんにちは、運営者のハックです。

今回はデイトラJavaコース中級編Day34「ビルドツール解説」の学習内容について記録します。

ビルドツールって何?

ビルドツールは、ソフトウェア開発プロセスを自動化し、手作業を減らすために使用されます。

これにより、コードのコンパイル、依存関係の管理、パッケージング、テスト、デプロイなどのプロセスを効率的に行うことができます。

モナ
モナ

ビルドツールを簡単に例えると料理のレシピ本みたいなものでしょうか。

材料(コード)をリストアップし、どのように料理(プログラム)を作るかの手順を指示します。

今回の学習であればビルドツールを使用しなかった場合、「MyBatis」を使用する際に外部のライブラリを手動でダウンロードしないといけなくなります

ねこ奈
ねこ奈

手動でダウンロードしたら設定が面倒くさいし時間がかかるのにゃあ!?

多くのプログラミング言語にはそれぞれのビルドツールが存在します。

JavaScript
  • npm (Node Package Manager)
  • Webpack
  • Gulp
Python
  • pip
  • Setuptools
Java
  • Maven
  • Gradle

今回の学習ではMaven(メイヴェン)とGradle(グレードル)の特徴について学びました。

MavenとGradleの違いについて

MavenとGradleはJavaの世界で広く使用されるビルドツールですが、それぞれ異なる特徴を持っています。

公式サイト

それぞれの違いについて学習した内容をまとめました。

Maven ~htmlみたいな見た目です~

Mavenは2004年にリリースされた、古くから存在するビルドツールです。プロジェクトの構成情報をXMLファイル(pom.xml)に記述します。この「Convention over Configuration」(規約に従うことで設定を減らす)のアプローチにより、新しいプロジェクトを始める際のセットアップが容易になります。

<>タグで囲みながらコードします。XMLファイルを使用してプロジェクトの構成を管理し、これにより、依存関係、プラグイン、その他のプロジェクト設定が定義されます。

そのためGradleと比べてコードとビルド時間が長くなりがちです。

ただ、Gradleよりも先に出たため多くの既存プロジェクトや企業で採用されているそうで、現在の主流はMavenだそうです。

主に既存プロジェクトや大規模プロジェクト規約に基づくプロジェクト管理を好む場合に使用されます。

Gradle ~パフォーマンス重視のツールです~

Gradleは2009年にリリースされ、柔軟性とパフォーマンスに焦点を当てたビルドツールです。GroovyやKotlinによるDSL(ドメイン特化言語)を使用してビルドスクリプトを記述します。

上の画像は私が実際に学習で使用したGradleのビルド設定ファイルの一部のコードです。見ての通りプログラミング言語(Groovy)で書かれています。

より読みやすく、柔軟なビルドスクリプトの作成が可能になったため、コードが比較的短く、ビルド時間を大幅に短縮することが可能となりました。

主に、アジャイル開発や小~中規模のプロジェクトマルチプロジェクトのビルドを管理する場合パフォーマンスを重視するプロジェクトに使用されます。

モナ
モナ

コードの違いはありますが、実装している中身自体はMavenもGradleも同じです。

最後に ~学んだこと~

今回はMaven(メイヴェン)とGradle(グレードル)の特徴について学習した内容を紹介しました。

ハック
ハック

学習の中で『ビルドツールは現場の環境に合わせて使い分けるものなので、自分の環境でだけGradleを入れる、というのは出来ないのでそこは合わせるようにしましょう。』というアドバイスがあり、また『大事なのは「どういう環境構成なのか」というのをMavenやGradleの設定ファイルから読み取れるようになること』という教えがありました。

開発現場に入った時にMavenGradle両方に対応できるように慣れておく必要がある、と感じました。

以上で今回の学習内容の紹介を終えます。

ここまでご覧いただきありがとうございました。

コメント

タイトルとURLをコピーしました