次のプロジェクトを想定します。マスター プロジェクトはマルチ プロジェクトですが、より大きなプロジェクトのすべての部分は、個別に開発することも、混合して開発することもできます。
/master/build.gradle
/m1/build.gradle
/m2/build.gradle
/m3/build.gradle
usesとuses ( m3
_m2
m2
m1
m1 <- m2 <- m3 )
の存在m2
はオプションですが、次のレイアウトのマルチプロジェクトも合理的です
/master/build.gradle
/m1/build.gradle
/m3/build.gradle
しかし、この場合m2
、アーティファクト リポジトリからプルされますが、これは問題ありません...ただしm1
、推移的な依存関係は良好ですが、ベイクされたアーティファクトの代わりにm2
ローカル バージョンを使用するように gradle に指示するにはどうすればよいですか?m1
私はこれにこだわっています.gradleをオーバーライドするためにアクセスできるすべての場所は、「ちょうど」ModuleVersionSelector
レベルのアクセスを提供DefaultProjectDependency
します.ダウンロードしたアーティファクトの推移的な依存関係に従って、どのように追加できますか?
アーカイブされたアーティファクトの完全な依存関係グラフにアクセスし、いくつかのオーバーライド/除外を入れることができれば、代替手段があるかもしれません。
編集:
私が思いついた最善の方法は、resolutionStrategy を使用してフィルターを使用することです。「elastic-deps」プロジェクトをさらに開発して例を作成しました