Gradleビルドには3つのファイルがあります
build.gradle
ビルド構成スクリプトを定義しますgradle.properties
settings.gradle
質問
settings.gradle
&の違いは何gradle.properties
ですか?- 設定はに置かれるべき場合には
settings.gradle
対gradle.properties
?
回答:
settings.gradle
このsettings.gradle
ファイルは、ファイルと同じようにGroovyスクリプトbuild.gradle
です。settings.gradle
各ビルドで実行されるスクリプトは1つだけです(build.gradle
マルチプロジェクトビルドの複数のスクリプトと比較して)。settings.gradle
このスクリプトは、任意の前に実行されるbuild.gradle
スクリプトと前であっても、Project
インスタンスが作成されます。したがって、Settings
オブジェクトに対して評価されます。このSettings
オブジェクトを使用すると、ビルドにサブプロジェクトを追加したり、コマンドライン(StartParameter
)からパラメーターを変更したり、Gradle
オブジェクトにアクセスしてライフサイクルハンドラーを登録したりできます。結果として、settings.gradle
設定がビルド関連であり、必ずしもプロジェクト関連である必要がない場合、または可能なサブプロジェクトが含まれる前にロジックが必要な場合に使用します。
gradle.properties
このgradle.properties
ファイルは単純なJavaProperties
ファイルであり、Project
オブジェクトのスコープに自動的に含まれることによってのみ特別な役割を果たします(いわゆる「プロジェクトプロパティ」として)。これは、文字列値のみを許可する単純なKey-Valueストアです(したがって、リストまたは配列を自分で分割する必要があります)。gradle.properties
次の場所にファイルを配置できます。
.gradle
ディレクトリ(ユーザーまたは環境に関連する値の場合)マルチモジュールプロジェクトには、1つのメインモジュールと多くのサブモジュールがあります。このレイアウトがあります:
(root)
+- settings.gradle
+- build.gradle # optional (commonly present)
+- gradle.properties # optional
+-- buildSrc/ # optional
| +- build.gradle
| +-- src/...
+-- my-gradle-stuff/ # optional
| +- utils.gradle # optional
+-- sub-a/
| +- build.gradle
| +- src/
+-- sub-b/
+- build.gradle
+- src/
サブモジュールはサブフォルダーのより深い場所に配置することもできますが、settings.gradleのコードを変更しないと、その名前にはそのようなフォルダーの名前が含まれます。
settings.gradleの主な役割は、含まれているすべてのサブモジュールを定義し、モジュールツリーのディレクトリルートをマークすることです。これsettings.gradle
により、マルチモジュールプロジェクトに含めることができるファイルは1つだけになります。
rootProject.name = 'project-x'
include 'sub-a', 'sub-b'
設定ファイルもgroovyで記述されており、サブモジュールのルックアップをカスタマイズできます。
モジュールごとにそのようなファイルが1つあり、このモジュールのビルドロジックが含まれています。
build.gradle
ファイルメインモジュールは、使用することができますallprojects {}
またはsubprojects {}
他のすべてのモジュールの設定を定義します。
build.gradle
サブモジュールのファイルで、compile project(':sub-a')
1つのサブモジュールを他のサブモジュールに依存させるために使用できます。
これはオプションです。その主な目的は、gradle自体を実行するために使用する起動オプションを提供することです。
org.gradle.jvmargs=-Xmx=... -Dfile.encoding=UTF-8 ...
org.gradle.configureondemand=true
これらの値は、ファイルUSER_HOME/.gradle/gradle.properties
でオーバーライドしたり、gradleコマンドライン引数でオーバーライドしたりできます。またsystemProp.
、プレフィックスとして使用して、このファイルでビルドの環境変数を設定することもできます。
このファイルの任意のプロパティは任意のbuild.gradleで使用できるため、一部のプロジェクトでは依存関係のバージョンまたはリリース情報もに配置されますが、これgradle.properties
はこのファイルの悪用である可能性があります。
(フォルダーまたはファイルの任意の名前が可能です。)定義を再利用するために追加のカスタムgradleファイルを定義し、それらを他のgradleファイルに含めることができます。
apply from: "$rootDir/gradle/utils.gradle"
これを置く他の場所はsrc/gradle
またはかもしれませんsrc/build/gradle
このフォルダーは特別で、それ自体が別のgradleプロジェクトのようなものです。それは他のことをする前に構築され、他のgradleファイルで使用する機能を提供できます。技術的な理由により、このフォルダーへの参照に対するIDEのサポートは、複数のbuild.gradle
ファイルから別の場所に共通のコードを抽出する他の方法よりもはるかにうまく機能します。
プラグインを作成してデプロイする代わりに、Java、Groovy、またはkotlinで複雑なカスタムビルドロジックを定義できます。これは、単体テストを実行できるため、カスタムビルドコードの単体テストにも役立ちます。のソースフォルダ構造はbuildSrc
、他のjava / groovy / kotlinプロジェクトと同じように適合させることができます。