【プログラミング】【ビルド】Gradle - j-komatsu/myCheatSheet GitHub Wiki
Gradle(グレードル)は、柔軟性と高速性を兼ね備えたビルドツールです。
JavaやKotlin、Androidアプリの開発に広く利用されています。
特徴 | 説明 |
---|---|
高い柔軟性 | GroovyまたはKotlin DSLで記述可能 |
タスクベースの構造 | タスク(Task)単位で処理を管理 |
依存関係管理 | MavenやIvyを利用可能 |
インクリメンタルビルド | 変更部分のみを再コンパイルし高速化 |
マルチプロジェクト対応 | 大規模プロジェクトにも適用可能 |
Gradleは、以下のような構成で管理されます。
プロジェクトルート/
├── build.gradle(または build.gradle.kts)
├── settings.gradle(または settings.gradle.kts)
├── gradle/wrapper/
├── src/
│ ├── main/java/
│ ├── main/resources/
│ ├── test/java/
│ ├── test/resources/
└── gradlew(実行用スクリプト)
-
build.gradle
/build.gradle.kts
:ビルド設定 -
settings.gradle
/settings.gradle.kts
:プロジェクト設定 -
gradlew
/gradlew.bat
:Gradle Wrapper(環境依存なく実行可能)
graph TD;
A[プロジェクトのルート] -->|build.gradleを読む| B[設定フェーズ];
B -->|依存関係を解決| C[実行フェーズ];
C -->|ビルド処理を実行| D[成果物を出力];
Gradle Wrapper を利用すると、環境に依存せずビルド可能。
./gradlew tasks
公式サイト(https://gradle.org/install/)からダウンロードし、環境変数を設定。
export PATH=$PATH:/path/to/gradle/bin
gradle init --type java-application
./gradlew build
./gradlew tasks
plugins {
kotlin("jvm") version "1.8.0"
}
dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib")
}
tasks.register<JavaExec>("run") {
mainClass.set("com.example.MainKt")
}
plugins {
id 'java'
}
dependencies {
implementation 'org.apache.commons:commons-lang3:3.12.0'
}
task hello {
doLast {
println 'Hello, Gradle!'
}
}
dependencies {
implementation 'com.google.guava:guava:31.0.1-jre'
testImplementation 'junit:junit:4.13.2'
}
-
implementation
:通常のライブラリ依存 -
testImplementation
:テスト時のみ使用するライブラリ依存
task customTask {
doLast {
println 'カスタムタスクの実行'
}
}
./gradlew customTask
rootProject.name = 'MyProject'
include 'subproject'
./gradlew clean build
gradle --stop
Gradleは、柔軟なビルド設定と高速なビルド機能を持つ強力なツールです。
基本的な使い方を押さえつつ、必要に応じてカスタマイズすると、開発が効率的に進められます。