同じ構成のモジュールが複数ある場合は、これらの構成を抽出できます。つまり、グローバル構成を使用できます。グローバルに構成する方法はたくさんありますが、そのうちの2つをここで紹介します。
1. extブロック構成を使用する
以下に示すように、プロジェクトbuild.gradleでextブロックを使用します。
GRADLE
ext { compileSdkVersion = 28 buildToolsVersion = "28.0.3" minSdkVersion = 15 targetSdkVersion = 28 } |
特定のモジュールのbuild.gradleで構成を使用します。
GRADLE
プラグインを適用します: 'com.android.application' アンドロイド{ compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion rootProject.ext.buildToolsVersion defaultConfig { applicationId "com.example.liuwangshu.hookinstrumentation" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } ..。 } ..。 |
2. config.gradle構成を使用する
最初に、構成用のルートディレクトリにconfig.gradleファイルを作成します。
config.gradle
GRADLE
ext { android = [ applicationId: "com.example.liuwangshu.hookinstrumentation"、 compileSdkVersion:28、 buildToolsVersion: "28.0.3"、 minSdkVersion:15、 targetSdkVersion:28、 ] 依存関係= [ "appcompat-v7": "com.android.support:appcompat-v7:28.0.0"、 "constraint": "com.android.support.constraint:constraint-layout:1.1.3"、 ] } |
次に、apply from: "config.gradle"
それをプロジェクトbuild.gradleに追加して、プロジェクトのすべてのモジュールがconfig.gradleで定義されたパラメーターを使用できるようにします。
最後に、モジュールのbuild.gradleの構成を使用します。
GRADLE
プラグインを適用します: 'com.android.application' アンドロイド{ compileSdkVersion rootProject.ext.android.compileSdkVersion buildToolsVersion rootProject.ext.android.buildToolsVersion defaultConfig { applicationId rootProject.ext.android.applicationId minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } ..。 依存関係{ 実装rootProject.ext.dependencies ["constraint"] 実装rootProject.ext.dependencies ["appcompat-v7"] ..。 } |
4.3依存関係块
依存関係ブロックは、ビルドプロセス中にモジュールが依存するすべてのライブラリを構成するために使用されます。3.4バージョンのGradleプラグインは、コンパイル構成の依存関係を置き換えるためにapiと実装を追加します。ここで、apiは前のコンパイルと同じです。依存関係とAPIの主な違いは次のとおりです。
- 実装により、モジュールはコンパイル時に依存関係を非表示にできますが、この依存関係は実行時にすべてのモジュールに表示されます。コンパイルのように、APIは使用する依存関係を隠すことはできません。
- 如果使用api,一个module发生变化,这条依赖链上所有的module都需要重新编译,而使用implemention,只有直接依赖这个module需要重新编译。