make
1976年にリリースされた非常に古いツールです。プログラムのビルド作業を実行します。コンパイル、リンク、インストール等のルールを記述したテキストファイル(Makefile)に従ってこれらの作業を実施します。CやC++、Javaの開発などで使われることが多いです。
現状は、古いシステムを触る場合などではたまに見かけるくらいです。
ant
2000年にリリースされた。Javaで書かれたプログラムで、Javaアプリケーションのコンパイル、アセンブル、テスト及び、実行を可能とする多数の組み込みタスクを提供する。XMLベースで「build.xml」を利用して定義する。
maven
2004年にリリースされた。POMの考え方に基づくツール。Javaベースのプロジェクト構築と管理ができるツール。Antの代替として作られました。Antに比べると細かく「build.xml」で指示していた処理内容を大雑把な処理を「pom.xml」に記述すれば良くなった。
コンテナ機能なども提供しており、Dockerfileと連携して使うこともできる。
POM(Project Object Model)とは?
「プロジェクト自体をオブジェクトとして考えて管理していこう」という考え方のことです。pom.xmlでプロジェクトのメタ情報や、依存ライブラリなどを一律で管理します。
Gradle
2007年にリリースされてJava開発のデファクトスタンダードになりつつあるツールです。ビルドの自動化と、多言語開発のサポートに重きをおいています。
Java、Scala、Android、C/C++、Groovy、Kotolin、Swiftなどの複数言語とプラットフォームに渡るビルド自動化をサポートする。(Androidの開発ツールであるAndroid Studioでも採用されています。)
IDEであるEclipse、IntelliJ、Jekinsなどに統合されている。
コンテナ機能なども提供しており、Dockerfileと連携して使うこともできる。
maven、Gradleとそれ以外のツール(make、ant)の違い
依存するライブラリ(アーティファクト)がネットワーク上のリポジトリから得られるかどうか。(要は、makeやantの場合はライブラリを別途ダウンロードしておく必要がある。)
mavenとGradleの違い
gradleの方が、pom.xmlなどの厚生管理ファイルが洗練されている。
この記事へのコメントはありません。