【问题标题】:What is the difference between "provided files" and "compile"“提供的文件”和“编译”有什么区别
【发布时间】:2015-03-20 03:20:48
【问题描述】:

在 Android Studio 的“依赖项”选项卡的“模块设置”中,您可以选择库文件的范围。 “编译”和“提供”有什么区别?

【问题讨论】:

    标签: gradle android-studio dependencies


    【解决方案1】:

    compile 将库包含在您的最终 APK 中,而 provided 不包含; provided 是仅编译时的依赖项。

    【讨论】:

    • 我已经编译了,但 jar 仍然没有包含在 apk 中。
    • 为什么名字搞砸了? compile 应该表现得像 compile 一样,并且像提供给 apk 一样提供,对吗?
    • 如果最终的apk不包含参考包会导致报错?
    【解决方案2】:

    Gradle v3.0 包括下一个更改:

    compile -> api - 暴露对消费者的依赖

    provided -> compileOnly - 是编译时依赖(不包含在二进制文件中并且在运行时不可用),这就是为什么它允许您缩小最终二进制文件的大小。通常用于注解处理器

    [Read more]

    【讨论】:

      【解决方案3】:

      该说什么?说白了,compile or api会在编译的时候就存在,打包到最终的工程中,可以传递给子依赖使用。 provided仅在编译时存在,打包到最终项目中时不存在。打包成最终项目后如果没有其他地方继续提供依赖会报错,一般用于开发第三方jar包等。

      【讨论】:

      • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
      猜你喜欢
      • 2017-02-11
      • 1970-01-01
      • 2014-08-10
      • 1970-01-01
      • 2018-07-11
      • 2013-03-07
      • 2011-03-04
      • 2011-05-03
      相关资源
      最近更新 更多