281

私はGradleを初めて使用し、ドキュメントを読んでいますが、その一部を理解していません。これらのパーツの 1 つがbuildscriptブロックで接続されています。その目的は何ですか?

ビルド スクリプトで外部ライブラリを使用する必要がある場合は、それらをビルド スクリプト自体のスクリプトのクラスパスに追加できます。これは buildscript() メソッドを使用して行い、ビルド スクリプトのクラスパスを宣言するクロージャーを渡します。

buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath group: 'commons-codec', name: 'commons-codec', version: '1.2'
  }
}

わかりましたが、次との違いは何ですか:

repositories {
  mavenCentral()
}
dependencies {
  compile group: 'commons-codec', name: 'commons-codec', version: '1.2'
}

たとえば、なぜ使用する必要があるのbuildscriptですか?

4

7 に答える 7

9

Android の最上位の gradle ファイルを示して、もう少し説明します。

buildscript {
    // this is where we are going to find the libraries defined in "dependencies block" at below
    repositories {
        google()
        jcenter()
        maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
    }

    // everything listed in the dependencies is actually a plugin, which we'll do "apply plugin" in our module level gradle file.
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.2' // this is android gradle plugin
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // kotlin gradle plugin
    }
}

モジュール レベルの gradle ファイル

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

「プラグイン」とは?これらは、プラグイン インターフェイスを実装する単なる Java クラスです。インターフェイスの下には、複数のタスク オブジェクトを異なる名前で追加するためのメソッド「apply」があります。Task は、ワークフローを実装できるクラスです。たとえば、ビルド タスクは、アプリをビルドするフローで構成されます。

では、buildscript は何をするのでしょうか? プラグインを見つける場所を定義します。プラグインは何をしますか? これには複数のタスクが含まれます。タスクは何をしますか? ビルド、インストール、リントなどを提供します。

私の理解が間違っているかもしれません。何か誤解を招くようなことがあれば、遠慮なく訂正してください。

于 2019-08-05T09:11:36.287 に答える
8

「buildscript」構成セクションは、gradle 自体用です (つまり、gradle がビルドを実行できる方法を変更します)。したがって、このセクションには通常、Android Gradle プラグインが含まれます。

于 2016-06-28T14:05:21.973 に答える