🌏

gradle Settings File Basicsを読んでみた

に公開

Settings File Basics

タイトルの通りgradleの設定ファイルについて読んでみたことを書いている記事です。

記事の対象者

  • gradleの設定ファイルに興味がある
  • gradleを使う機会がある人

こちらの記事の続きです。
https://zenn.dev/forgehack/articles/cf0bced1173421

https://docs.gradle.org/current/userguide/settings_file_basics.html

設定ファイルの基本

設定ファイル(settings.gradle(.kts))は、すべてのGradleプロジェクトのエントリポイントです。

設定ファイルの主な目的は、プロジェクト構造を定義し、通常はビルドにサブプロジェクトを追加することです。したがって、:

  • 単一プロジェクトビルド、設定ファイルはオプションです。
  • マルチプロジェクトビルド、設定ファイルは必須であり、すべてのサブプロジェクトを宣言します。

設定スクリプト

設定ファイルはスクリプトです。これは、groovyで書かれたsettings.gradleファイルまたはkotlinのgradle.ktsファイルのいずれかです。

Groovy DSLとKotlin DSLは、Gradleスクリプトの唯一の受け入れられている言語です。

設定ファイルは通常、プロジェクトが含まれているようなビルドの構造を定義するため、プロジェクトのルートディレクトリにあります。設定ファイルがなければ、Gradleはビルドをデフォルトで単一プロジェクトビルドとして扱います。

例を見て、それを分解しましょう。

rootProject.name = 'root-project'   ①

include('sub-project-a')            ②
include('sub-project-b')
include('sub-project-c')
  • プロジェクト名を定義します。
  • サブプロジェクトを追加します。
  1. プロジェクト名を定義します
    設定ファイルはプロジェクト名を定義します。
rootProject.name = "root-project"

ビルドごとにルートプロジェクトは1つだけです。

  1. サブプロジェクトを追加します
    設定ファイルは、サブプロジェクトを含めることにより、プロジェクトの構造を定義します。
include("sub-project-a")
include("sub-project-b")
include("sub-project-c")

設定スクリプトは、ビルドスクリプトの前に評価され、プラグイン管理、ビルド、バージョンカタログなどのビルド全体の機能を有効または構成するのに適した場所になります。これらのGradle機能をAdvanced Conceptsセクションで調べます。

設定ファイルのスクリプトの詳細については、設定ファイルの書き込みを参照してください。

最後に

設定ファイルとはスクリプトのこと。公式の解説のままだったのであれを日本語に翻訳して何度か読み直した方が良さそうだなと思いました。

Androidアプリだとこのように書かれている。

pluginManagement {
    repositories {
        google {
            content {
                includeGroupByRegex("com\\.android.*")
                includeGroupByRegex("com\\.google.*")
                includeGroupByRegex("androidx.*")
            }
        }
        mavenCentral()
        gradlePluginPortal()
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
    }
}

rootProject.name = "ComposeDemo"
include(":app")

次回は、ビルドファイルを見ていこうと思う。

Discussion