2017-12-21 26 views
0

私は3つの別々のGradleのプロジェクトを持っている - XはZに応じYに依存します。 settings.gradle X/build.gradleのGradleプロジェクトの依存関係

apply plugin: 'java' 

Y X/settings.gradle

include ':y' 
project(':y').projectDir = new File('../y') 

/

include ':z' 
project(':z').projectDir = new File('../z') 

Y/build.gradle

apply plugin: 'java' 
dependencies { 
    compile project(':z') 
} 

私はXディレクトリにgradlew buildを実行すると、私はエラー

* Where: 
Build file 'C:\Temp\idea\y\build.gradle' line: 4 

* What went wrong: 
A problem occurred evaluating project ':y'. 
    Project with path ':z' could not be found in project ':y'. 

を得る。しかしgradlew buildのYディレクトリを実行すると、成功しています。

にはどうすればいいのyをyの依存関係がXに影響を与える避けるためにXを設定する必要がありますか?

+1

プロジェクトで複数のsettings.gradleファイルを使用することは想定されていません。 –

+0

さて、このような依存関係のチェーンを作成する別の方法はありますか? – Alexey

+0

独自のsettings.gradleはビルドに含まれるすべてのプロジェクトを定義します。依存関係は、各プロジェクトビルドファイルで宣言されます。 –

答えて

0

これは、マルチプロジェクトビルドがGradleでどのように機能するかではありません。

つまり、settings.gradleは親プロジェクトのルートに1つしか存在できません。その設定ファイルに

、あなたは別のモジュールを定義します:上記は、暗黙のうちに settings.gradleファイルの兄弟として xyZという名前のフォルダに配置されている3つのプロジェクトを想定していることを

include ':x', ':y', ':z' 

注意。

Gradleラッパーは、そのルートレベルで定義する必要があります。

各プロジェクトのbuild.gradleファイルを変更せずに、そのルートフォルダ内の./gradlew buildを呼び出すと、期待する結果が得られるはずです。

詳細はGradle documentation on multi project buildsをご覧ください。

関連する問題