2017-02-22 5 views
0

Androidプロジェクトで問題が発生しました。Android Gradleプロジェクトでは、ネストされた依存関係のビルドバリアント設定を渡す方法はありますか?

たとえば、App、Lib1、Lib2、Lib3の4つのモジュールがあります。

アプリケーション:

compile project(":Lib1") 

LIB1:

compile project(":Lib2") 

LIB2:

:今

compile project(":Lib3") 

、私はこのようなアプリの両方とLIB3の製品の風味を設定

productFlavors { 
     formal {} 
     dev {} 
    } 

AppのようなビルドバリアントをApp:assembleFormalReleaseのようにアセンブルすると、Lib3のformalReleaseバリアントを作成します。

==============

は、私は同じproductFlavorsを追加し、すべてのモジュールで、次のように設定することによって、これを達成することができます知っています。

configurations { 
     devReleaseCompile {} 
     devDebugCompile {} 
     formalReleaseCompile {} 
     formalDebugCompile {} 
    } 

    dependencies {  
     devReleaseCompile project(path:"xxx", configuration: "devRelease") 
     devDebugCompile project(path:"xxx", configuration: "devDebug") 
     formalReleaseCompile project(path:"xxx", configuration: "formalRelease") 
     formalDebugCompile project(path:"xxx", configuration: "formalDebug") 
    } 

が、私の作業プロジェクト内のネストされた依存関係以上の5つのレベルがありますが、私はもっと簡単な解決策があるかどうかを知りたいです。

ありがとうございました!

tasks.whenTaskAdded { task -> 
if(task.name.equals('assembleFormalRelease') 
    {task.dependsOn ':lib3:assembleFormalRelease'} 
} 

それは動作しないシナリオ内のすべての競合を:?

答えて

0

私は、タスクの依存関係を使用すると、タスクはアプリケーションモジュールでは遅延ロード ある組み立てneed.Since何だと思いますか?

+0

ありがとうございました。しかし、私が必要とするのは、 'formalReleaseCompileプロジェクト(path:" xxx "、configuration:" formalRelease ")のようなプロジェクトの依存関係を追加することです。 –

関連する問題