私はApache AntプロジェクトをGradleでコンパイルするために進化しています。他のモジュールのデバッグクラスを使ってGradleサブプロジェクトをコンパイルするには
私の目標は、メインプロジェクトの出力をいくつかのサブプロジェクトの依存関係として使用することです。
MainProject:
-> src/main/java
-> src/main/resources
-> src/test/java
-> src/test/resources
-> src/mocks/java
ChildProject1:
-> src/main/java
-> src/main/resources
-> src/test/java
-> src/test/resources
-> src/mocks/java
メインプロジェクトが正しく子ビルド・パスに含まれており、それがリンクをEclipseに来るとき、すべてのリンクが正しく検出された:グローバル設定は次のとおりです。
私はsettings.gradle
ChildProject
用ファイルとビルドでその依存関係の主なプロジェクトが含まれている:私の問題はChildProject
をコンパイルするために、モック/ Javaからの出力を必要とすることであり、それはそうですけれども
dependencies {
compile project(':MainProject')
}
をGradleコンパイルプロセスにmain/javaファイルである "default"出力が含まれていると、モックの "symbols"が見つからないというエラーメッセージが表示されます。
sourceSets {
mocks {
java {
srcDir 'src/mocks/java'
}
compileClasspath += sourceSets.main.runtimeClasspath
}
test {
compileClasspath += sourceSets.mocks.output
runtimeClasspath += sourceSets.mocks.output
}
}
を模擬ソースが正しくテストクラスパスに追加されます。
私は、使用するモックを必要MainProject
テストJavaファイルのコンパイルと同様の問題があった、それが追加することで解決しました。
ChilProject
には、MainProject
の出力を使用してテストをコンパイルする方法を教えてください。
ありがとう、私は現在あなたの提案から問題を解決しようとしています。 しかし私はメインプロジェクトでアーティファクトをどのように宣言すべきか分かりませんが、設定ブロックが異なるソースセットのコンパイルプロセスを定義するためのものであると理解しているので、 "configuration {mocks}"という行は得られません。 Gradleでアーティファクトを使用したことはありませんでした.Gradleの公式ドキュメントは不明です 次の回答をお待ちしております。 –
ダブルポストについて申し訳ありません。これが何をしているのか分かりません)、コンパイルはスムーズに進みますが、あなたのexempleに続くアーティファクト/ jar宣言がどこにあるべきかわかりません。 –
1.セクション'jarMocks'は' mocks'ソースセットで定義されたモックソースコードを使ってJARをビルドするタスクでなければなりませんmcoks JA Rにプライマリクラスファイルがありません。2.セクションの答えを更新しました。 – cmcginty