2016-10-18 17 views
0

私たちは、settings.gradleの 'included'プロジェクト間にプロジェクト内依存関係のあるマルチプロジェクトビルドを作成しています。プロジェクトの依存関係の適度なサイズのリストに含まれるプロジェクト依存関係として表現されたさまざまなプロジェクト間には、多くの相互依存関係がある。Gradleはプロジェクトの依存関係を無視しているようです

このアプローチは、この特定のプロジェクトではいくつかの他のマルチプロジェクトビルドでうまく機能しますが、プロジェクトの依存関係が尊重されないため、サブプロジェクトが間違った順序でビルドされてビルドが失敗します。

だから、まずはバグかどうかを判断するためにここで何が起こっているのかをどう診断するのですか?

私たちが実行している: のGradle(ラッパー)バージョン:3.1 オペレーティングシステム:Windows 8.1 6.3 AMD64 JDKを:Oracleの1.8.0_65


だから - 私たちは最終的に問題がこのであると判断しました - さまざまな依存関係にuseVersionを設定していた設定ブロックのコードがありました。これらの依存関係の1つがプロジェクト依存であった場合、プロジェクトの依存関係は壊れています。

+0

'settings.gradle'と関連する設定を' build.gradle'ファイルに投稿できますか? – Adam

答えて

0

関連するスニペットbuild.gradleが表示されていないと答えにくく、問題のプロジェクトが互いにどのように関係しているかを概観します。ここでは有望な候補

のカップルは時々、一つのプロジェクトの評価は、これらのケースでは、あなたがかもしれないプロジェクトの依存関係の間で循環参照があります例ではevaluationDependsOn

project(':projectA') { 
    evaluationDependsOn(':projectB') 
} 
project(':projectB') { 
    project(':projectA').tasks.create(...) 
} 

を使用することができ、他の評価に依存しています

project(':projectA') { 
    configurations { 
     base 
     compile.extendsFrom base 
    } 
    dependencies { 
     base 'aaa:bbb:1.0' 
     compile project(path: ':projectB', configuration: 'base') 
    } 
} 
project(':projectB') { 
    configurations { 
     base 
     compile.extendsFrom base 
    } 
    dependencies { 
     base 'ccc:ddd:1.0' 
     compile project(path: ':projectA', configuration: 'base') 
    } 
} 
関連する問題