[解決済み] Gradleビルドスクリプトから共通メソッドを抽出する
質問
Gradleのビルドスクリプト(
build.gradle
) があり、その中でいくつかのタスクを作成しました。これらのタスクは主にメソッドの呼び出しで構成されています。呼び出されたメソッドもビルドスクリプトの中にあります。
さて、ここからが本題です。
私はかなりの量のビルド スクリプトを作成しており、それらは異なるタスクを含んでいますが、元のスクリプトから同じメソッドを利用しています。したがって、新しいスクリプトを作成するたびにそれらをコピーするのではなく、簡単に再利用できるように、何らかの方法でこれらの共通のメソッドを抽出したいと思います。
もしGradleがPHPだったら、以下のようなものが理想的でしょう。
//script content
...
require("common-methods.gradle");
...
//more script content
しかし、もちろん、それは不可能です。それとも、そうなのか?
とにかく、どうすればこの結果を得られるのか?これを行うための最良の方法は何でしょうか? 私はすでにGradleドキュメントに目を通しましたが、どの方法が最も簡単で、これに最も適しているのか判断できないようです。
前もってありがとうございます!
UPDATEです。
別ファイルでメソッドを抽出することに成功しました
(使用する
apply from: 'common-methods.gradle'
),
ということで、以下のような構成になります。
parent/
/build.gradle // The original build script
/common-methods.gradle // The extracted methods
/gradle.properties // Properties used by the build script
からタスクを実行した後
build.gradle
からタスクを実行した後、新たな問題にぶつかりました:どうやら、メソッドが
common-methods.gradle
.
これを修正する方法について何かアイデアはありますか?
どのように解決するのですか?
メソッドを共有することはできませんが、クロージャを含む余分なプロパティを共有することは可能で、結局は同じことです。例えば
ext.foo = { ... }
で
common-methods.gradle
を使用します。
apply from:
を使用してスクリプトを適用し、クロージャを
foo()
.
関連
-
[解決済み] テストなしでGradleビルド
-
[解決済み] Gradle for Androidを使用して、外部のaarパッケージを手動でインクルードする方法
-
[解決済み] Gradle に特定の JDK バージョンを使用するように指示する方法は?
-
[解決済み】Gradleのbuildscriptブロックの目的
-
[解決済み] Gradle artifact dependency graph コマンドとは何ですか?
-
[解決済み] Gradleから現在のOSを検出する方法
-
[解決済み] Gradleで、共通の依存関係を一箇所で宣言するにはどうしたらいいですか?
-
[解決済み] IntelliJ IDEAの'default gradle wrapper'のバージョンを変更する方法は?
-
[解決済み] Gradleスクリプトを別のスクリプトにインポートするには?
-
[解決済み] gradle-wrapperを使用する際にダウンロードせずにローカルシステムでgradleのzipを使用する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Flutter Appは "Running Gradle task 'assembleDebug'..."(Gradle タスク 'assembleDebug'を実行しています)で立ち往生しています。"
-
[解決済み] Gradle artifact dependency graph コマンドとは何ですか?
-
[解決済み] Gradleから現在のOSを検出する方法
-
[解決済み] Android StudioでGradleのタスク実行を停止するには?
-
[解決済み] Gradle バージョン 3.3 は BuildActionExecuter の forTask() メソッドをサポートしていません。
-
[解決済み] kotlin gradle pluginが1.8ターゲットでビルドできないのはなぜですか?
-
[解決済み] IntelliJ IDEAの'default gradle wrapper'のバージョンを変更する方法は?
-
[解決済み] Gradleスクリプトを別のスクリプトにインポートするには?
-
[解決済み] 複数のタスクを実行するGradleカスタムタスク
-
[解決済み] gradle-wrapperを使用する際にダウンロードせずにローカルシステムでgradleのzipを使用する方法