在Gradle中,依赖项被分组为配置作为依赖项配置。外部依赖项是对在当前构建之外构建的某些文件的依赖项,并存储在某种存储库中,例如Maven中央或企业Maven或Ivy存储库或本地文件系统中的目录。
依赖类型:
外部模块依赖项:
对某个存储库中的外部模块的依赖项。
项目依赖项:
对同一构建中的另一个项目的依赖项。
文件依赖项:
对本地文件系统上的一组文件的依赖项。
客户端模块依赖:
对外部模块的依赖,其中工件位于某个存储库中,但模块元数据由本地构建指定。您在需要覆盖模块元数据时使用此类依赖项。
Gradle API依赖项:
对当前Gradle版本的API的依赖关系。您在开发自定义Gradle插件和任务类型时使用此类依赖项。
本地Groovy依赖项:
对当前Gradle版本使用的Groovy版本的依赖项。您在开发自定义Gradle插件和任务类型时使用此类依赖项。
添加依赖项的好处:
在Gradle中,您只需声明您的依赖项的“名称”,其他层确定从哪里获取那些依赖项。
在子项目中可以进行代码更改。
清晰的直接依赖性包括所使用库的版本清单和清晰的间接依赖性管理(即所使用的库使用另一个库-POM文件){来自用户Robert Halter}。
在线可用性依赖。
所需的SDK库已与项目同步以进行编译。
缺点:
因此,它没有任何缺点,但在添加依赖项的初始阶段,我们必须进行同步,这比简单地拖放jar文件需要花费一些时间。
会显着降低编译时间吗?
否,因为只有在同步时才会编译库。
会增加发布APK和调试APK的大小,就像添加的依赖项一样大吗?
不是,但实际上是的,因为它只占用构建文件(二进制文件)的大小,这几乎不会增加几个字节或KB的大小,几乎无法跟踪。
因此,当我们只需要使用特定库的一小部分时,将它们作为Gradle依赖关系添加是否过度?
肯定会有像你这样的情况,只需要使用库的子集。在这种情况下,启用ProGuard可以优化性能分析,从字节码级别开始,在方法内部和跨方法进行分析,以使您的应用程序更小、运行更快,而不会过度杀伤力。
build.gradle
文件中的一行条目会被认为是“过度繁琐”呢? - CommonsWare