android – Gradle依赖关系编译,apk项目,编译项目,提供,实现项目之间的区别

android – Gradle依赖关系编译,apk项目,编译项目,提供,实现项目之间的区别,第1张

概述Gradle依赖关系的区别. compile apk project compile project provided project implementation 我的问题是 编译,apk项目,编译项目,提供的项目有什么区别? 这里要讨论两个不同的事情:依赖配置和依赖源. 依赖配置 配置有助于定义依赖关系的传递性,这反过来消除了必须发现和指定您自己的项目/库所需的库的痛苦,包括它们自动 Gradle依赖关系的区别.
compile apk project  compile project provIDed project implementation

我的问题是

编译,apk项目,编译项目,提供的项目有什么区别?

解决方法 这里要讨论两个不同的事情:依赖配置和依赖源.

依赖配置

配置有助于定义依赖关系的传递性,这反过来消除了必须发现和指定您自己的项目/库所需的库的痛苦,包括它们自动包含它们. gradle中的配置概念与Maven’s scopes的配置非常相似:

> compile:编译依赖项在项目的所有类路径中都可用.此外,这些依赖项将传播到依赖项目.运行时通常需要编译时依赖项.
> apk:定义运行时依赖项.在编译时不需要具有此作用域的依赖项,但它将用于执行.这意味着您可以在编译时节省时间,并在项目实际运行时仍具有依赖性. This是何时使用apk依赖项的一个很好的例子.
> provIDed:表示此依赖项在运行时环境中可用.因此,此范围仅在编译和测试类路径中可用,并且不可传递. AndroID项目不支持它,但您可以通过定义自己的配置来解决它,如here所述.

您可以在AndroID上遇到更多配置,例如testCompile,它允许您指定仅用于测试的编译时依赖项,比如您想在测试中使用junit,然后您将执行以下 *** 作:

testCompile 'junit:junit:4.12'

依赖性来源

一旦了解了可用的配置,就需要指定实际的依赖关系.依赖关系可能是内部的或外部的,您可能依赖于您正在处理的另一个库,以及公共库.这是project关键字的来源,允许您指定对内部模块或库的依赖关系.通过将依赖项定义为编译项目,您将该模块或库添加为项目的传递依赖项.

假设您有一个包含三个模块(生产者,消费者和共享)的项目消息,项目结构将如下所示:

messages/    build.gradle    settings.gradle    consumer/        build.gradle    producer/        build.gradle    shared/        build.gradle

现在假设使用者和生产者都以Json格式存储消息,并且您希望将google-gson用于此目的.假设两个项目都有一些共同的源代码,它们依赖于您的共享模块.然后,consumer的build.gradle可以定义以下依赖项:

dependencIEs {   // Internal dependency to project shared   compile project (':shared')   // External dependency to publicly available library,// through public repositorIEs such as jcenter() or mavencentral()   compile 'com.Google.code.gson:gson:1.7.2'}

总而言之,它是配置和源的组合,使您能够将依赖关系声明为编译,apk项目等等!

总结

以上是内存溢出为你收集整理的android – Gradle依赖关系编译,apk项目,编译项目,提供,实现项目之间的区别全部内容,希望文章能够帮你解决android – Gradle依赖关系编译,apk项目,编译项目,提供,实现项目之间的区别所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1149321.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存