【プログラミング】【ビルド】ビルドツールまとめ - 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 buildplugins {
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 は古いが、未だに使われる場面あり。