バージョン
Windows:10
Gradle:7.1
Gradleのリリースノートはこちら。
ディレクトリ構成
ソースプロジェクトにおけるGradleの設定ファイルたちは、こんな構成で配置する。
├─ src ・・・ソースコードディレクトリ
├─ gradle
│ └─ wrapper ・・・Gradle Wrapperの設定ディレクトリ
│ ├─ gradle-wrapper.jar ・・・Gradle WrapperのJarファイル
│ └─ gradle-wrapper.properties ・・・Gradle Wrapperの設定ファイル
├─ build.gradle ・・・ビルドの定義ファイル
├─ gradlew ・・・Gradle Wrapper実行用スクリプト(UNIX用)
├─ gradlew.bat ・・・Gradle Wrapper実行用スクリプト(Windows用)
└─ settings.gradle ・・・Gradleの設定ファイル
Gradle Wrapper
Gradleは特定のバージョンをインストールして使用することもできるが、公式のガイドにもある通りGradle Wrapperを使用するとインストール不要で簡単にバージョンの変更ができるためオススメ。
バージョンの設定
gradle-wrapper.properties
に定義する distributionUrl
に、使用したいGradleのバージョンを指定する。
distributionUrl=https\://services.gradle.org/distributions/gradle-7.1-bin.zip
Gradlew Wrapperの実行
以下のコマンドで実行できる。
- Windows
./gradlew.bat {タスク}
- UNIX
./gradlew {タスク}
Gradleタスク
Gradleでは、デフォルトで用意されているタスクがある。
その中で、よく使用するものを挙げてみる。
タスク名 | 用途 | 実行例 |
---|---|---|
build | ソースコードのビルドを行う。 testタスクを内包しているため、デフォルトではtestタスクまで実行するが、 -x test を付けて実行するとテストを行わない。また、 --refresh-dependencies を付けて実行すると、依存関係にあるライブラリをビルド時に取得し直す。 |
./gradlew.bat build ./gradlew.bat build -x test ./gradlew.bat build --refresh-dependencies
|
test | ソースコードのテストを行う。 buildタスクに内包されているため、buildタスクを実行すると、自動的にtestタスクも実行される。 |
./gradlew.bat test |
bootRun | SpringBootのアプリケーションを起動する。 | ./gradlew.bat :{ソースプロジェクト名}:bootRun |
clean | buildタスクによって生成されたbuildディレクトリとその配下を削除する。 | ./gradlew.bat clean |
これらの他にも多くのタスクが存在する。
また、後述するbuild.gradleに独自のタスクを定義して実行することもできる。
build.gradle
ビルドの定義を記載する。
Groovyのスクリプト形式。
ここでは、よく使用する設定を挙げる。
pluginsブロック
Gradle単体ではビルドに必要な機能をほとんど備えていない。
そのため、必要な機能をPluginsブロックに定義して補う必要がある。
詳細は、公式のガイドを参照。
マルチプロジェクト
マルチプロジェクト構成では、親プロジェクトと子プロジェクトのそれぞれにbuild.gradleを配置する。
ここでは、マルチプロジェクト構成に関係するbuild.gradleの設定項目について挙げる。
親プロジェクトのbuild.gradle
allprojectsブロック
親プロジェクトに配置するbuild.gradleに記載する。
ソースプロジェクト全体の共通的な設定を記載するブロック。
subprojectsブロック
親プロジェクトに配置するbuild.gradleに記載する。
子プロジェクトに反映する設定を記載するブロック。
子プロジェクトのbuild.gradle
dependenciesブロック
ライブラリとの依存関係を定義する。
よく使用するメソッドの種類と違いは以下。
メソッド名 | 特徴 | 備考 |
---|---|---|
compileOnly | コンパイルクラスパスのみに依存関係を追加する。 | 非推奨とされている。 |
runtimeOnly | 実行時に使用できるように、ビルド出力だけに依存関係を追加する。 | 非推奨とされている。 |
api | 依存関係をコンパイルクラスパスとビルド出力に追加します。 依存関係が伝播する。 |
- |
implementation | 依存関係をコンパイルクラスパスに追加し、依存関係をビルド出力にパッケージ化する。 依存関係が伝播しない。 |
- |
testImplementation | テスト実行時のみ、依存関係をコンパイルクラスパスに追加する。 | - |
詳細は公式のガイドを参照。
settings.gradle
ビルドの対象とするソースプロジェクト名や、ライブラリ取得元リポジトリの情報を記載する。
-
pluginManagement
ビルド時に外部ライブラリを取得する際に使用する。
ライブラリ取得元のリポジトリ情報を定義する。 -
rootProject.name
大元となるソースプロジェクト名を定義する。
マルチプロジェクト構成では親プロジェクト名。 -
include
マルチプロジェクト構成になっている場合に、ビルドの対象に含める子プロジェクト名を定義する。