0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Gradleの各種設定ファイルについて

Last updated at Posted at 2025-01-12

概要

Gradleはオープンソースで開発されているビルド自動化ツールです。
Groovyと呼ばれるスクリプト言語で記述された設定ファイルであり、JVM上で動作する。
プロジェクト立ち上げ期には色々と触る機会が多いと思いますが、
ある程度熟成してくると、build.gradleに依存関係の追加くらいしか触る機会がない方も多いと思います。
以下、各種Gradle関連ファイルの用途について整理致しました。

各種設定ファイル整理

まずはGradle関連ファイルについて、説明します。

Gradleラッパー

Gradleラッパーは、特定のGradleバージョンでプロジェクトをビルド可能にする仕組みです。これにより、開発チーム全員が同じGradleバージョンを使用でき、環境の違いによる問題を回避できます。

gradle-wrapper.properties

使用するGradleバージョンや配布URLを指定するファイルです。

gradle-wrapper.properties
# Gradleのディストリビューションが格納される基本パス
# GRADLE_USER_HOMEは通常、ユーザーのホームディレクトリ内にある隠しディレクトリです。
distributionBase=GRADLE_USER_HOME

# ラッパーのディストリビューションが格納される相対パス
distributionPath=wrapper/dists

# 使用するGradleバージョンとその配布URLを指定
# 必要なバージョンが自動的にダウンロードされます。
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip

# ダウンロードしたGradle ZIPファイルの保存場所
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

gradle-wrapper.jar

Gradleラッパーの実行ロジックを含む実行可能なJARファイルです。

build.gradle

Gradleのビルドスクリプトで、プロジェクトの依存関係やビルド手順を定義します。

gradlew / gradlew.bat

gradlew(Linux/Mac用)とgradlew.bat(Windows用)は、
Gradleラッパーを実行するためのスクリプトです。

gradlew.bat
~~~
@rem Execute Gradle
set JAVA_HOME=%JAVA_HOME:"=%
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
~~~

中身を見てみると前述したgradle-wrapper.jarのメインクラスorg.gradle.wrapper.GradleWrapperMainを起動しているだけですね。
引数で指定されたタスクを渡して実行する単純な仕組みです。

setting.gradle

プロジェクトの構成を定義するためのファイルです。
マルチプロジェクトの場合に使用。イメージは下記です。

setting.gradle
// ルートプロジェクト名を指定
rootProject.name = 'MyProject'

// 含まれるモジュールを定義
include 'module1', 'module2'

下記が最小構成でマルチプロジェクトの検証をしているので、分かりやすいです。
https://qiita.com/YutaSaito1991/items/049412205340c98c67c6

Gradleデーモン

Gradleでは、特に設定を行っていない場合、
gradle XXXを実行するたびにJVMの起動と停止が行われる。
Gradleデーモンを利用すると、JVMのプロセスを常駐させておくことができるので、
起動と停止にかかる時間が省略され、コマンドの実行が早くなる。

引用元:https://qiita.com/maple_syrup/items/096d176000623455b31c

最後に

Gradleのリファレンスがかなりわかりやすくまとまっています。
日本語の書籍も販売していますが、下記を参照するだけで十分な気がしたり。
Gradle入門の同線としてこの記事がお役に立ちますように。
http://gradle.monochromeroad.com/docs/userguide/userguide_single.html#tutorial_java_projects

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?