235

Gradle Wrapper の仕組みを理解しようとしています。多くのソース リポジトリでは、次の構造が見られます。

projectRoot/
    src/
    build.gradle
    gradle.properties
    settings.gradle
    gradlew
    gradlew.bat
    gradle/
        wrapper/
            gradle-wrapper.jar
            gradle-wrapper.properties

私の質問:

  1. gradlew/ はどのように/いつ生成されgradlew.batますか? プロジェクトが最初に作成されたときに一度だけ生成することになっていますか?変更をコミット/プッシュするたびに生成しますか? そして、それらはどのように生成されますか?
  2. 上記と同じ質問ですが、gradle/wrapper/*ファイル (gradle-wrapper.jarおよびgradle-wrapper.properties) については?
  3. *.gradleプロジェクトのgradleディレクトリ内に他のファイルが表示されることがあります。これらの追加の Gradle ファイルとは何ですか? また、それらは何を表し、何をしますか? カスタムプラグイン?
  4. settings.gradleに入るプロパティと内部で定義する必要があるプロパティの違いは何gradle.propertiesですか?
4

7 に答える 7

21

Gradle 2.4 では、ファイルgradle wrapper --gradle-version X.Xにタスクを追加することなく、特定のバージョンの Gradle ラッパーを構成するために使用できbuild.gradleます。次回ラッパーを使用するときに、一致する適切な Gradle ディストリビューションがダウンロードされます。

于 2015-08-19T09:57:25.327 に答える
10

ソースとドキュメントを含む gradle をダウンロードする場合、 gradle-wrapper.properites で構成されたデフォルトのディストリビューション URL はニーズを満たしません。 https://services.gradle.org/distributions/gradle-2.10-bin.zipです。https://services.gradle.org/distributions/gradle-2.10-all.zipではありません。この完全な URL は、Android Studio などの IDE によって提案されます。完全な gradle をダウンロードする場合は、次のようにラッパー タスクを構成できます。 :

task wrapper(type: Wrapper) {
    gradleVersion = '2.13'
    distributionUrl = distributionUrl.replace("bin", "all")
}
于 2016-06-30T03:06:07.820 に答える
2
  1. それらを一度生成しますが、プラグインから新しい機能や何かが必要な場合は更新し、新しい gradle バージョンが必要になります。

    更新する最も簡単な方法: Gradle 2.2 の時点で、完全またはバイナリのGradle ディストリビューションをダウンロードして抽出し、次を実行できます。

    $ <pathToExpandedZip>/bin/gradle wrapper
    

    おそらく何らかのbuild.gradleファイルが必要ですが、タスクを定義する必要はありません。

    これにより、ラップされた gradle の現在のバージョンを提供するために、gradlewおよびgradlew.batラッパーが更新または作成されます。gradle/wrapper/gradle-wrapper.propertiesgradle-wrapper.jar

  2. これらはすべてラッパーの一部です。

  3. 一部build.gradleのファイルは、サブ プロジェクトまたはモジュールであるサブディレクトリ内の他のファイルまたはファイルを参照します。少し複雑になりますが、プロジェクトが 1 つの場合、基本的に必要なファイルは 1 つです。

  4. settings.gradleプロジェクト、モジュール、およびその他の種類の名前と設定を処理し、gradle.properties必要に応じてgradleファイルの再利用可能な変数を構成し、その方がより明確になると感じます.

于 2015-08-17T21:05:45.790 に答える