Jac*_*cob 43 java dependencies android gradle android-studio
在向android项目中添加新的依赖项时尤其是Android Studio
在Dependencies
有三个范围选项Compile/provided/APK中.
选择每一种产品有什么影响?我们应该何时使用它们?除了名字之外.
编辑:
"正确处理'提供'和'包'范围来做他们应该做的事情.'提供'和'包'不能与Android库一起使用,并且会产生错误"......这是来自http://工具. android.com/tech-docs/new-build-system
Kir*_*nov 42
provided
- 仅编译时依赖项package
- 仅限包时间依赖compile
- 编译时和包时限provided
通常用于基于注释处理的库.通常这些库分为两个工件 - "注释"和"编译器"."编译器"是provided
依赖项,因为您不需要在应用程序中使用它,仅用于编译; 和"注释"是compile
依赖 - 它在应用程序代码中使用,因此编译.或者生成的代码可能需要额外的依赖关系,而您的应用程 例如dagger依赖配置:
compile 'com.squareup.dagger:dagger:1.2.2'
provided 'com.squareup.dagger:dagger-compiler:1.2.2'
Run Code Online (Sandbox Code Playgroud)
Kam*_*nek 36
这些属性来自maven
范围.
它们只是表明在构建过程的每个步骤中如何处理特定的依赖项.
compile
- 一种默认方法,它只是意味着所有依赖项都应该在编译时可用.编译依赖项在项目的所有类路径中都可用.此外,这些依赖项将传播到依赖项目.运行时通常需要编译时依赖项.
package
- 声明用于构建应用程序的其他配置.您可以列出为构建过程添加其他功能的插件.
provided
- 这意味着运行时环境包含这些依赖项.例如,当您查看android.jar
库内部时,您将java.lang.RuntimeException: Stub!
在每个方法体中看到.
provided
并且package
不能与Android库一起使用,并且会生成错误.
这是如何sourceSet
看起来像:
有关构建系统的更多信息:https://www.youtube.com/watch?v = LCJAgPkpmR0
关于Gradle的一篇很棒的文章:http://www.sinking.in/blog/provided-scope-in-gradle/
归档时间: |
|
查看次数: |
25571 次 |
最近记录: |