既存のプロジェクトを依存関係として使用して新しいプロジェクトを構築したいと考えています。次のファイル構造が使用されます。projAでGradleマルチプロジェクトの依存関係のインポートなし
projA
-src
-main
-java
-HelloWorld.java
-build.gradle
-settings.gradle
projB
-src
-main
-java
-Greeter.java
-build.gradle
-settings.gradle
プロジェクトはprojBプロジェクト(HelloWorldのはグリーターを使用しています)に依存します。 projBのsettings.gradleは次のようになります。
rootProject.name = 'projB'
build.gradleはかなりまっすぐ進むもある:
apply plugin: 'java'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
}
projAのsettings.gradleファイルがそうのようなprojBが含まれるように設定されています。
rootProject.name = 'projA'
include ':projB'
project(':projB').projectDir = new File(settingsDir, '../projB')
最後に、projAのbuild.gradleがそうのようなプロジェクトが含まれています
apply plugin: 'java'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile project(':projB')
testCompile group: 'junit', name: 'junit', version: '4.12'
}
HelloWorldでGreeterを使用したい場合は、インポートエラーが発生します。私がprojAプロジェクトを再構築しても。これは、私が思いつくことができるように、マルチプロジェクトのクリーンなことです。指定した依存関係のクラスを使用できないのはなぜですか?
これらの2つのプロジェクトの上にルートモジュールがありますか、フラットな構造ですか。 –
「プロジェクト構造|モジュール|依存関係」のprojBに依存していますか? –
これは適切なマルチプロジェクトレイアウトではありません。 'projA'の' settings.gradle'はハッキーです。適切な設定では、 'settings.gradle'ファイルが1つしかありません。 – nickb