2

開発プロセスをスピードアップするために、2 つの gradle フレーバーを開発しようとしています。

  • ライブラリをモジュールとしてコンパイルするローカルフレーバー
  • ライブラリの最新のスナップショットを使用するリモート フレーバー

gradle で 2 つのフレーバーを宣言しました。

productFlavors {
    local {}

    remote {}
}

ここでは、ローカル ライブラリとリモート ライブラリの両方がローカル モジュールとして (デバッグ目的で) 利用可能であると仮定します。ここにサンプルプロジェクトを作成しました。各ライブラリには、ローカルまたはリモートであると想定されるサブライブラリがあるため、次を追加しました。

dependencies {
    localCompile project(path: ':mylibrary', configuration: "localDebug")
    remoteCompile project(path: ':mylibrary2', configuration: "remoteRelease")
}

今、それはトリッキーになります。を呼び出すとgradle assembleLocalDebug、次の行が表示されます。

:mylibrary2:compileRemoteReleaseJavaWithJavac UP-TO-DATE

サンプルアプリの場合はコンパイルします。しかし、私たちの場合、最新の機能がスナップショットで見つからないプロジェクトがあります (まだ公開されていないため)。ローカルでビルドしているため、これは発生しないはずです。Gradleがリモートフレーバーをコンパイルするのを防ぐ方法はありますか?

4

1 に答える 1

0

あなたがやりたいことは、Gradleの最新バージョンで解決されるかもしれません。

Gradle 3.1 では、いわゆる「複合ビルド」を使用できるようになりました。

例として、リモート リポジトリにデプロイされたライブラリ L と、L に依存するプロジェクト P があるとします。L (たとえば、「libL/」) と P (「projectP」) の両方が、 projectP から次のコマンドを実行して、「ローカル」バージョンをビルドできます。

$ ./gradlew --include-build ../libL build

さらに、コンポジット ビルドが Android Studio に追加されます。

于 2016-11-18T15:41:04.670 に答える