私は非常に優れたgradle構成を持っていたので、すべてがうまく構築されました。しかし、私のマルチプロジェクトビルドのプロジェクトの1つは、残りのプロジェクトから非常に派生しているため、喜んで別のgitリポジトリに移動し、それを処理するようにサブモジュールを構成します。
まず、Projectとそのリソースをサブフォルダーに移動しましたLibraries/MovedProject
。Gradle構成でいくつかの行を変更した後、正常に機能しました。しかし、その後、このプロジェクトのためだけに新しいbuild.gradleを作成し、すべての構成をメインの構成からそこに移動することにしました。
そして、これはすべてが機能しなくなった場所です。タスクを呼び出そうとすると、常に。で終わりますCould not find property 'sourceSets' on project ':Libraries/MovedProject'
。それを担当する行は次のとおりです。
dependencies {
...
if (noEclipseTask) {
testCompile project(':Libraries/MovedLibrary').sourceSets.test.output
}
}
他のプロジェクトのクラスを使用するテストを実行するために使用します。その行を削除すると、MovedProjectを使用するプロジェクトのcompileTestJavaタスクに到達したときにのみビルドが失敗します。その行を削除して電話gradle :Libraries/MovedLibrary:properties
をかけると、次のことがわかります。
...
sourceCompatibility: 1.7
sourceSets: [source set main, source set test]
standardOutputCapture: org.gradle.logging.internal.DefaultLoggingManager@1e263938
...
gradle :Libraries/MovedLibrary:build
正しくビルドしている間。
現在、私はすべてを次のように設定しています。
ディレクトリ:
- / SomeMainProject1
- / SomeMainProject2
- / SomeMainProject3
- /ライブラリ
- / MovedProject
- build.gradle
- 依存関係.gradle
- project.gradle
- タスク.gradle
- / MovedProject
- /ビルダー
- 依存関係.gradle
- project.gradle
- タスク.gradle
- build.gradle
- settings.gradle
settings.gradle
include Libraries/MovedProject, SomeMainProject1, SomeMainProject2, SomeMainProject3
MovedProjectのsourceSetsは次のように定義されてい
Libraries/MovedProject/project.gradle
ます:sourceSets { main { java { srcDir 'src' srcDir 'resources' } resources { srcDir 'resources' } } test { java { srcDir 'test/unit' } } }
sourceSets.test.outputを利用する依存関係はに格納され
Builder/dependancies.gradle
、テストを実行するためにMovedProjectを必要とするプロジェクトごとに設定されます。project(':SomeMainProject1') { dependencies { ... if (noEclipseTask) { testCompile project(':Libraries/net.jsdpu').sourceSets.test.output } } }
そのエラーを取り除き、現在のディレクトリ構造でgradleビルドプロジェクトを作成する最も簡単な方法は何でしょうか?gradleがそのプロパティを表示できない理由を理解したいと思います。