前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Gradle依赖配置compile,implementation和api的区别

Gradle依赖配置compile,implementation和api的区别

作者头像
似水的流年
发布2021-03-04 10:50:54
8.9K0
发布2021-03-04 10:50:54
举报
文章被收录于专栏:电光石火

主要跟Gradle的版本有关系

Gradle3.4新增了Java-library插件,java-library插件使用了新的依赖配置implementation和api。旧的依赖配置compile被废弃。

Gradle3.4之前的版本

java插件

代码语言:javascript
复制
apply plugin: 'java'

添加依赖

代码语言:javascript
复制
dependencies {
compile group: 'org.springframework.cloud', name: 'spring-cloud-context'
compile group: 'org.springframework.boot', name: 'spring-boot-starter'
}

Gradle 3.4+

使用java-library插件替换java插件

代码语言:javascript
复制
apply plugin: 'java-library'

新的依赖配置:implementation和api

代码语言:javascript
复制
dependencies {
api group: 'org.springframework.cloud', name: 'spring-cloud-context'
implementation group: 'org.springframework.boot', name: 'spring-boot-starter'
}

api和implementation两种依赖的不同点在于:它们声明的依赖其他模块是否能使用。

  • api 当其他模块依赖于此模块时,此模块使用api声明的依赖包是可以被其他模块使用
  • implementation 当其他模块依赖此模块时,此模块使用implementation声明的依赖包只限于模块内部使用,不允许其他模块使用。
  • compileOnly 依赖会添加到编译路径中,但是不会打包到apk中,因此只能在编译时访问,且compileOnly修饰的依赖不会传递。
  • runtimeOnly 与compileOnly相反,它修饰的依赖不会添加到编译路径中,但是被打包到apk中,运行时使用。没有使用过。
  • annotationProcessor 用于注解处理器的依赖配置。
  • testCompile  只在单元测试代码的编译以及最终打包测试apk时有效。
  • debugCompile  只在 debug 模式的编译和最终的 debug apk 打包时有效。
  • Release compile 仅仅针对 Release 模式的编译和最终的 Release apk 打包。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-01-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档