当前位置: 首页 > 知识库问答 >
问题:

编译,提供,APK-Android依赖范围

凌照
2023-03-14

在为android项目添加新的依赖项时,特别是在android Studio中,在dependencies中,有三个作用域选项compile/provide/apk。

共有1个答案

谭志用
2023-03-14
  • 提供了-仅编译时依赖项
  • -包-仅限时间依赖项
  • 编译-编译时和包时依赖关系

provided通常用于基于注释处理的库。通常这些库被分离在两个工件中--“注释”和“编译器”。“编译器”是提供的依赖项,因为您不需要在应用程序中使用它,只用于编译;而“注释”是compile依赖项--它用于应用程序代码中,因此可以进行编译。或者生成的代码可能需要额外的依赖项,而应用程序可能不需要。例如。dagger依赖配置:

compile 'com.squareup.dagger:dagger:1.2.2'
provided 'com.squareup.dagger:dagger-compiler:1.2.2'
 类似资料:
  • Gradle依赖项之间的差异。 我的问题是 这里的编译项目、apk项目、编译项目和提供的项目之间有什么区别?

  • 我最近发现龙目山。jar最终会出现在我们的最终工件中,这应该是不必要的。在我看来,lombok只是编译时的。 但是当我将它设置为提供的范围时,我在单元测试中会遇到奇怪的行为。当试图解决时,它们会与ClassNotFoundExceptions崩溃 龙目山通常使用哪种maven范围? 我在MacOSX 10.9上使用Oracle JDK build 1.8.0_25-b17

  • 根据Maven完整参考中的图像,当直接依赖关系范围为“编译”并且传递依赖关系的范围为“提供”时,传递依赖关系将被忽略。 我的问题是,如果直接依赖类从我的项目的传递依赖编译中扩展一个类将失败,因为在编译时'javac'将从传递依赖中寻找由直接依赖扩展的类,并且不会在编译时类路径中找到它,因为maven忽略了它。 基本上这就是编译直接依赖时编译传递依赖范围而不是运行时的原因,为什么提供传递依赖范围时不

  • 我正在使用mongodb和Spring Boot。最近,我的mongodb升级到了3.0版本。 我对Spring使用以下Gradle依赖项: 如果我查看maven存储库中的gradle:,我会看到以下内容(http://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-mongodb/1.2.6

  • 我想知道为什么我的简单spring boot项目不再有效。它基本上直接来自spring示例,其中一个控制器说hello world。我使用的是spring boot starter jetty和spring boot v1.1.10(也尝试了1.2.0)。我有一些使用嵌入式solr的单元测试,所以solr核心被标记为<代码> 我认为测试范围的依赖关系不应该干扰编译范围的依赖关系,并且“仅适用于测试

  • 问题 是否可以创建一个动态ValueRangeProvider,其值范围取决于规划变量的当前值?或者有什么其他的方法可以达到这种想要的效果? 轮班需要分配员工,以便尽可能多地覆盖轮班的持续时间 员工只能在每个轮班和每个员工唯一的特定时间内开始 员工和他们的开始时间都需要作为严格的硬约束进行优化(员工不能被安排到没有可用时间的班次,而且开始时间也不能超出该员工在该班次的可用时间) 员工工作的持续时间