我试图了解如何通过模块构建Android应用程序,并查看NowInAndroid应用程序从中学习。
这个页面展示了一个漂亮的图表,显示了一些模块依赖关系:https://github.com/android/nowinandroid/blob/main/docs/ModularizationLearningJourney.md
现在,当查看ForYouViewModel (in:feature:foryou)时,从:core:domain导入了2个用例,从:core:data导入了一个userdatarerepository两者都是由希尔特注入的。这些模块并不是:feature:的依赖项。它是怎么知道这些的?它如何解决导入问题?
:feature:foryou是:app的一个依赖项,但它不应该为你提供:feature:任何东西,对吗?
(查看了很多关于模块的文档和示例。)
对于同样的事情感到困惑的人。答案就在Gradle约定插件中。https://docs.gradle.org/current/samples/sample_convention_plugins.html
我还没有仔细看过,但是看起来约定插件允许为需要相同依赖的多个模块提供一组依赖。
这使得这些模块的gradle文件很小(可能会让你想知道"这是从哪里来的?就像对我一样)