1. ホーム
  2. グラドル

[解決済み】Gradleのラッパーファイルはいつ、どのように生成するのですか?

2022-04-04 16:34:56

質問

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.jargradle-wrapper.properties )?
  3. 時々、他の *.gradle の中にあるファイルです。 gradle ディレクトリを作成します。これらの追加のGradleファイルは何を表し、何をするのでしょうか?カスタムプラグイン?
  4. に入るプロパティの違いは何ですか? settings.gradle の中で定義されるべきものと比較して gradle.properties ?

解決方法は?

  1. 一度生成し、プロジェクトで使用するGradleのバージョンを変更したいときに再度生成します。そんなに頻繁に生成する必要はありません。 これ はdocsです。を追加するだけです。 wrapper タスクに build.gradle ファイルを作成し,このタスクを実行することで,ラッパー構造を取得することができます.

    が必要であることに注意してください。 Gradleのインストール ラッパーを生成するために g-ecosystemの成果物を管理するための素晴らしいツールは SDKMAN! . gradle ラッパーを生成するには、以下のコード片を build.gradle ファイルを作成します。

    task wrapper(type: Wrapper) {
       gradleVersion = '2.0' //version required
    }
    
    

    を実行してください。

    gradle wrapper
    
    

    タスクを実行します。出来上がったファイルをSCM(例:git)に追加すれば、今後、全ての開発者がGradle Wrapperを使うときに、同じバージョンのGradleを持つことになります。

    Gradleを使用する 2.4 (またはそれ以上) では、専用のタスクを追加することなくラッパーをセットアップすることができます。

    gradle wrapper --gradle-version 2.3
    
    

    または

    gradle wrapper --gradle-distribution-url https://myEnterpriseRepository:7070/gradle/distributions/gradle-2.3-bin.zip
    
    

    すべての詳細はこちら こちら

Gradleより 3.1 --distribution-type オプションも使用できます。オプションはバイナリで すべて ビン . すべて には、さらにソースコードとドキュメントが含まれます。 すべて はIDEを使用している場合、エディタの動作も良くなります。欠点は、ビルドが長くなること(データをダウンロードする必要があり、CIサーバでは無意味)、容量が大きくなることです。

  1. これらはGradleのWrapperファイルです。一度だけ(特定のバージョン用に)生成して、バージョン管理に追加する必要があります。もし、Gradle Wrapperのバージョンを変更する必要がある場合、そのバージョンを build.gradle を参照し、ファイルを再生成してください。

  2. 詳しい例を挙げてください。このようなファイルは、マルチモジュール・プロジェクト、責任分担、少し修正したスクリプトなど、複数の目的を持つことがあります。

  3. settings.gradle はどちらかというとプロジェクトの構造(モジュール、名前など)に責任を持ちますが。 gradle.properties は、プロジェクトとGradleの 外部 の詳細(バージョン、コマンドライン引数 -XX プロパティなど)