web-dev-qa-db-ja.com

Android St​​udioプロジェクトに2つのbuild.gradleファイルがあるのはなぜですか?

EclipseプロジェクトをAndroid St​​udioにインポートした後、2つのbuild.gradleファイルが表示されます。

1 - <PROJECT_ROOT>\build.gradle
2 - <PROJECT_ROOT>\app\build.gradle

最初のバージョンは短く、2番目のバージョンにはcompileSdkVersionなどの定義が含まれます。

2つの別個のファイルを持つ背後にある目的は何ですか?個別のビルドタスクはありますか?

95
Sabuncu

<PROJECT_ROOT>\app\build.gradleは、アプリモジュールに固有です。

<PROJECT_ROOT>\build.gradle"トップレベルビルドファイル"です。すべてのサブプロジェクト/モジュールに共通の構成オプションを追加できます。

プロジェクトで別のモジュールを使用する場合、ローカルライブラリとして別のbuild.gradleファイルがあります:<PROJECT_ROOT>\module\build.gradle

最上位ファイルのexampleには、次の共通プロパティを指定できます。

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.Android.tools.build:gradle:1.3.0'
    }
}

ext {
    compileSdkVersion = 23
    buildToolsVersion = "23.0.1"
}

あなたのapp\build.gradle

apply plugin: 'com.Android.application'

repositories {
    mavenCentral()
}

Android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion
}
65

公式文書から:

Android Studioプロジェクトには、プロジェクト内のすべてのアプリケーションモジュールに共通の構成オプションを追加できるトップレベルのプロジェクトGradleビルドファイルが含まれています。各アプリケーションモジュールには、そのモジュール固有のビルド設定用の独自のbuild.gradleファイルもあります。

enter image description here

プロジェクトビルドファイル

<PROJECT_ROOT>\build.gradleまたはProject Build Fileは、プロジェクト全体そのため、グローバルプロジェクト構成に使用されます。典型的なProject Build Fileには以下が含まれます:

  • 以下を定義するビルドスクリプト:
    • リポジトリと
    • 依存関係
  • Gradleプラグインバージョン

デフォルトでは、プロジェクトレベルのGradleファイルはbuildscriptを使用してGradleを定義しますrepositoriesおよびdependencies。これにより、さまざまなプロジェクトでさまざまなGradleバージョンを使用できます。サポートされるリポジトリには、JCenter、Maven Central、またはIvyが含まれます。この例では、ビルドスクリプトがJCenterリポジトリと、Gradleバージョン1.0.1のAndroidプラグインを含むクラスパス依存アーティファクトを使用することを宣言しています。


モジュールビルドファイル

<PROJECT_ROOT>\app\build.gradleまたはModule Build Fileは、特定のモジュール用ですそのため、特定のモジュールレベルの設定に使用されます。 Module Build Fileには以下が含まれます。

  • Android設定
    • compileSdkVersion
    • buildToolsVersion
  • defaultConfigおよびproductFlavors
    • applicationId、minSdkVersion、targetSdkVersion、テスト情報などのマニフェストプロパティ
  • buildTypes
    • デバッグ可能、ProGuard有効化、デバッグ署名、バージョン名サフィックス、テスト情報などのビルドプロパティ
  • 依存関係

公式ドキュメントはこちらで読むことができます:

プロジェクトとモジュールのビルド設定

15
SMR