一部の Java ライブラリに依存する Android プロジェクトを開発しています。テスト目的で、別の jar を含むスタブ化されたバリアントを使用できるようにしたいと考えています。gradle でこれを行う方法は?
私はフレーバーで何かを試してきましたが、現在は通常のビルドではなく、「フレーバー」のみがビルドされています...
おそらく、ビルド システムでこれを行うよりも、Google Guice のような軽量の DI コンテナーを使用する方がよいでしょう。
https://code.google.com/p/google-guice/
プロジェクトをテスト クラスとプロダクション クラスにそれぞれバインドするテスト モジュールとプロダクション モジュールを定義できます。
本当にgradleでやりたいのなら、これを行うための非常に良い方法は思いつきません。1 つの方法は、新しい構成 (testAndroid と呼ぶ) を定義し、そこからすべての運用 jar を除外して、それらをテスト jar に置き換えることです。その後も、Java プラグインを使用してビルドできます。uploadArchives の実行時にテスト jar を公開する新しいアーカイブを定義できます。スタブアウトの例を次に示します。
configurations{
testAndroid extendsFrom compile
testAndroid.exclude(group: 'my.company.production')
}
dependencies{
compile group: 'my.company.production', name: 'prod-jar', version: '1.0'
testAndroid group: 'my.company.test', name: 'test-jar', version: '1.0'
}
task testJar(type: Jar){
//build the jar
}
artifacts{
archives testJar
}