【プログラミング】【ビルド】ビルドツールまとめ - j-komatsu/myCheatSheet GitHub Wiki
ビルドツールは、ソースコードを実行可能な形式(例: JARファイル、APKファイル)に変換するためのツールです。
✅ できること:
- ソースコードのコンパイル
- 依存関係(ライブラリなど)の管理
- 単体テストの実行
- アプリのパッケージ化
ビルドツールはCI/CDパイプラインの一環としても活用され、
- ビルドスクリプトの自動化(再現性のあるビルド)
- インクリメンタルビルド(変更部分のみ再コンパイル)
- タスク指向 or 宣言指向のビルド管理(Gradle: DSL, Maven: XML) を実現する。
ビルドツール | 設定方式 | 依存管理 | ビルド速度 | 主な用途 |
---|---|---|---|---|
Gradle | Groovy/Kotlin DSL | あり | 高速(インクリメンタルビルド) | Java/Android |
Maven | XML(pom.xml) | あり | 普通 | Java/エンタープライズ開発 |
Ant | XML(build.xml) | なし(手動) | 遅め | レガシーシステム |
Bazel | Starlark(Python風) | あり | 超高速 | 大規模分散開発 |
sbt | Scala DSL | あり | 高速(Scala用) | Scala開発 |
# MacOS
brew install gradle
# Windows
scoop install gradle
# Linux (Ubuntu)
sudo apt install gradle
# プロジェクト作成
gradle init
# ビルド実行
gradle build
plugins {
kotlin("jvm") version "1.6.21"
}
dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib")
}
# MacOS
brew install maven
# Windows
choco install maven
# プロジェクト作成
mvn archetype:generate -DgroupId=com.example -DartifactId=myapp -DinteractiveMode=false
# ビルド実行
mvn package
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>myapp</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.5.4</version>
</dependency>
</dependencies>
</project>
graph TD;
A[ビルドツールを選ぶ] -->|Android開発| B[Gradle]
A -->|Java Webアプリ| C[Maven]
A -->|Scalaプロジェクト| D[sbt]
A -->|超大規模プロジェクト| E[Bazel]
A -->|レガシーシステム| F[Ant]
目的 | おすすめツール |
---|---|
Android開発 | Gradle |
企業向けJava | Maven |
Scala開発 | sbt |
大規模開発 | Bazel |
レガシー向け | Ant |
✅ Gradle は最新のAndroidやJava開発で最も採用される。 ✅ Maven はエンタープライズ向けの標準ツール。 ✅ Ant は古いが、未だに使われる場面あり。