在 gradle 上自动添加模块依赖
Automaticly add module dependencies on gradle
在 gradle 上使用 Android Studio 上的模块时,我有一个奇怪的行为...解释起来有点复杂,所以我认为最好举个例子
假设我的应用程序有两个模块
:bar
:foo
foo
使用 play-services-location
所以我将它导入它的 build.gradle。 foo
编译正常。
bar
使用 foo
,因此我在栏文件夹的 build.gradle
上使用:
api project(path: ':foo')
bar
也使用 play-services-location
但是当 bar
导入 foo
我认为它应该传递导入 play-services-location
但是如果我不明确做
implementation "com.google.android.gms:play-services-location:$location_library_version"
栏不编译
所以我错过了什么吗?难道它不应该自动导入所有的依赖项吗?所以任何传递依赖项都准备好了,我不需要重新导入它?
你应该使用'api'(而不是'implemenatation')作为'foo'中的'google-play-location',所以它可以被使用[=15]的'bar'所依赖=].如果没有其他模块依赖'bar',最好在'bar'中指定'implementation foo',而不是'api'
在 gradle 上使用 Android Studio 上的模块时,我有一个奇怪的行为...解释起来有点复杂,所以我认为最好举个例子
假设我的应用程序有两个模块
:bar
:foo
foo
使用 play-services-location
所以我将它导入它的 build.gradle。 foo
编译正常。
bar
使用 foo
,因此我在栏文件夹的 build.gradle
上使用:
api project(path: ':foo')
bar
也使用 play-services-location
但是当 bar
导入 foo
我认为它应该传递导入 play-services-location
但是如果我不明确做
implementation "com.google.android.gms:play-services-location:$location_library_version"
栏不编译
所以我错过了什么吗?难道它不应该自动导入所有的依赖项吗?所以任何传递依赖项都准备好了,我不需要重新导入它?
你应该使用'api'(而不是'implemenatation')作为'foo'中的'google-play-location',所以它可以被使用[=15]的'bar'所依赖=].如果没有其他模块依赖'bar',最好在'bar'中指定'implementation foo',而不是'api'