首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

"api“或"compileOnly”依赖语句的gradle if else子句

"api"和"compileOnly"是Gradle构建工具中用于管理依赖关系的语句。它们用于指定项目所依赖的外部库或模块。

  1. "api"依赖语句:
    • 概念:在Gradle中,"api"关键字用于指定一个依赖项,该依赖项将被传递给项目的所有模块和依赖项。
    • 分类:它是一种编译时依赖,会在编译和运行时都包含在项目中。
    • 优势:使用"api"依赖语句可以确保依赖项在整个项目中可见,包括项目的其他模块和依赖项。
    • 应用场景:适用于需要在整个项目中共享依赖项的情况,例如公共库或框架。
    • 推荐的腾讯云相关产品:无
  • "compileOnly"依赖语句:
    • 概念:在Gradle中,"compileOnly"关键字用于指定一个依赖项,该依赖项仅在编译时需要,不会被传递给项目的其他模块和依赖项。
    • 分类:它是一种编译时依赖,不会在运行时包含在项目中。
    • 优势:使用"compileOnly"依赖语句可以减少项目的运行时依赖,提高构建和运行效率。
    • 应用场景:适用于只在编译时需要某些依赖项的情况,例如编译时需要的注解处理器。
    • 推荐的腾讯云相关产品:无

请注意,以上答案仅针对"api"和"compileOnly"依赖语句的解释和使用场景,不涉及具体的腾讯云产品推荐。如需了解腾讯云相关产品,请参考腾讯云官方文档或咨询腾讯云官方支持。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Android Gradle 插件】Gradle 依赖管理 ④ ( Android Gradle 插件中注册的依赖分组 | implementation | api | compileOnly )

文章目录 一、Android Gradle 插件中注册的依赖分组 二、弃用的依赖分组 ( 现在仍然兼容 ) Android Plugin DSL Reference 参考文档 : Android Studio.../tasks/testing/Test.html LibraryExtension ( Library 依赖库的 build.gradle#android 配置 ) 文档 : android-gradle-dsl.../build/dependencies 一、Android Gradle 插件中注册的依赖分组 ---- 添加构建依赖项 参考文档 : https://developer.android.google.cn.../studio/build/dependencies 二、弃用的依赖分组 ( 现在仍然兼容 ) ---- 添加构建依赖项 参考文档 : https://developer.android.google.cn...apk 分组 : 只对 依赖 进行打包操作 , 该 依赖 不参与 编译 ; provided 分组 : 只对 依赖 进行编译操作 , 该 依赖 不参与 打包 ; 上述是已经弃用的 配置依赖项 的分组

55910

【Android Gradle 插件】Android 依赖管理 ④ ( 常用依赖配置分析 | implementation 依赖作用 | api 依赖作用 | compileOnly 依赖作用 )

文章目录 一、compile 依赖作用 二、implementation 依赖作用 三、api 依赖作用 四、compileOnly 依赖作用 五、annotationProcessor 依赖作用 六..., 发现依赖传递后 , 还要 添加依赖的依赖 ;因此 这两个 依赖方式 不常用 , implementation 依赖是当前最常见的依赖方式 ; 三、api 依赖作用 ---- api 依赖作用 :...代替 api 或 compile 依赖 ; 尽量不使用 api 或 compile 依赖 , 经常使用的是 implementation 依赖 ; 四、compileOnly 依赖作用 ---- compileOnly...; compileOnly 依赖 的作用与 已废弃的 provided 依赖 类似 , 都是 将依赖库添加到编译路径中 ; 在 根目录的 build.gradle 顶层构建脚本 中的 buildScript...依赖 类似 ; classpath 依赖 只用于 Gradle 运行时 为 Gradle 构建过程添加依赖 , compileOnly 依赖 和 provided 依赖 是 编译时 为工程添加的依赖

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

    主要跟Gradle的版本有关系 Gradle3.4新增了Java-library插件,java-library插件使用了新的依赖配置implementation和api。...', name: 'spring-boot-starter' } api和implementation两种依赖的不同点在于:它们声明的依赖其他模块是否能使用。...api 当其他模块依赖于此模块时,此模块使用api声明的依赖包是可以被其他模块使用 implementation 当其他模块依赖此模块时,此模块使用implementation声明的依赖包只限于模块内部使用...compileOnly 依赖会添加到编译路径中,但是不会打包到apk中,因此只能在编译时访问,且compileOnly修饰的依赖不会传递。...runtimeOnly 与compileOnly相反,它修饰的依赖不会添加到编译路径中,但是被打包到apk中,运行时使用。没有使用过。

    10K21

    Android使用Gradle依赖配置compile、implementation和api的区别

    classpath 'com.android.tools.build:gradle:3.0.0' 在新建一个Android工程的时候,build.gradle中的依赖默认为implementation,...另外,gradle 3.0.0版本以上,还有依赖指令api。本文主要介绍下implementation和api的区别。...新建工程默认生成的app的build.gradle文件中的依赖: dependencies { implementation fileTree(include: ['*.jar'], dir...implementation指令 这个指令的特点就是,对于使用了该命令编译的依赖,对该项目有依赖的项目将无法访问到使用该命令编译的依赖中的任何程序,也就是将该依赖隐藏在内部,而不对外部公开。...但是,如果testLib使用的是api来引用Glide: api 'com.github.bumptech.glide:glide:3.8.0' 则与gradle3.0.0之前的compile指令的效果完全一样

    1.1K40

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

    这个主要看Java项目所使用的Gradle的版本。 Gradle 3.4 新增了Java-library插件,java-library插件使用了新的依赖配置implementation和api。...Gradle 3.4 之前的版本 java插件 apply plugin: 'java' 添加依赖 dependencies { compile 'commons-httpclient:commons-httpclient...api:当其他模块依赖于此模块时,此模块使用api声明的依赖包是可以被其他模块使用。...当然这是在全编的情况下。 版本依赖关键字详解(2.0与3.0所有关键字) compile(api) 这种是我们最常用的方式,使用该方式依赖的库将会参与编译和打包。...provided(compileOnly) 只在编译时有效,不会参与打包 可以在自己的module中使用该方式依赖一些比如com.android.support,gson这些使用者常用的库,避免冲突

    7.7K30

    如何搜索maven或者gradle的依赖配置或手动下载jar包

    本文主要针对一些新手,maven和gradle的用法这里就不展开了,自己去学。 通过maven和gradle下载jar包很容易,可以自动的,只需要复制配置就可以。 但是从哪里复制这种依赖配置?...周末看到群里有问这种问题,有些新手可能不知道在哪里可以获取jar包,授人以鱼不如授人以渔,希望一篇文章解决新手的困惑。...https://mvnrepository.com/ 点进去之后选择版本号 中央仓库 https://search.maven.org/ 可以在这里搜索下载 也可以点进去看所有版本,复制依赖的配置项...点进去之后查看所有版本 点进去想要的版本之后,可以复制maven或者gradle等的依赖的配置 当然还有其他网站比如 https://jar-download.com/

    2K20

    解决 flink 本地执行和集群执行依赖问题

    背景 flink 在本地开发和提交到集群时的依赖是不同的,本地因为需要执行,所以一些依赖在本地是需要的,在部署到集群中是不需要的。...maven 中有一个叫 profile 的东西,但由于我使用的是 gradle 中,并没有这个功能,所以需要另外想办法 过程 方案1 首先先尝试了一下在 gradle 中设置一个变量,然后在执行打包task...时去更新这个字段去选择相应的依赖 def prod=false def conditionDependencies = [ "org.apache.flink:flink-table:${flinkVersion...先执行,所以就还是会含有相关依赖 方案2 和方案1一样,主要是去解决 prod 变量的赋值顺序问题,只要我们能够在执行所有 task 之前让他获取到合适的值,此时就可以完成 那么,怎么让它可以执行任务时候就拿到呢...想到了环境变量,在执行 gradlew 命令时后面可以传参,然后在 gradle.build 中获取,就可以实现了 _// 使用传递的属性_ def prod = System.getProperty

    2K00

    Android Studio3.1.0升级问题记录

    api的访问权限,而我们的app刚好用到了library依赖的第三方库的api,所以直接改为implementation是不行的,要想让app能访问到就将其改为 api就可以了,其实这不是一个好的解决办法...,最好的解决办法是,library中封装一层app访问library依赖的第三方库api的方法,这样的话app是和library依赖的第三方库是没有任何关系的,这样就降低了app与library依赖的第三方库的耦合性...,所以没有报冲突,现在新版本推荐使用 compileOnly 关键字,替换为compileOnly关键字后还是报一样的错,哎呦!...这就纳闷了,compileOnly的意思不就是编译时依赖,不打紧包中的意思吗?怎么还冲突?...、compileOnly等几个关键字的区别,具体见下图: ?

    89620

    一文彻底搞清Gradle依赖

    依赖类型 dependencies DSL标签是标准Gradle API中的一部分,而不是Android Gradle插件的特性,所以它不属于android标签。...依赖配置 目前Gradle版本支持的依赖配置有:implementation、api、compileOnly、runtimeOnly和annotationProcessor,已经废弃的配置有:compile...常用的是implementation、api、compileOnly三个依赖配置,含义如下: implementation 与compile对应,会添加依赖到编译路径,并且会将依赖打包到输出(aar或apk...api 与compile对应,功能完全一样,会添加依赖到编译路径,并且会将依赖打包到输出(aar或apk),与implementation不同,这个依赖可以传递,其他module无论在编译时和运行时都可以访问这个依赖的实现...compileOnly 与provided对应,Gradle把依赖加到编译路径,编译时使用,不会打包到输出(aar或apk)。这可以减少输出的体积,在只在编译时需要,在运行时可选的情况,很有用。

    5K20

    Gradle依赖方式——Lombok在Gradle中的正确配置姿势

    Gradle的依赖方式 下面先来了解下目前Gradle(4.1以上)的几种常见的依赖方式。 api:与旧版的compile相同; implementation:解决重复依赖问题。...在Gradle 5.0环境下,我们尝试下改成 compileOnly "org.projectlombok:lombok:1.18.4" 然后执行gradle build。...最终的对应依赖如下 compileOnly 'org.projectlombok:lombok:1.18.4' annotationProcessor 'org.projectlombok:lombok...如果不配置compileOnly,只配annotationProcessor(gradle5.0以上才有),也会build成功,但会把依赖也打包进去。...针对5.0以下版本,对应依赖如下 compileOnly 'org.projectlombok:lombok:1.18.4' 看完后,大家可以动起来,把自己项目中的lombok配置改掉吧(注意gradle

    12.6K41

    ProtoBuf 动态拆分Gradle Module

    它的设计非常适用于在网络通讯中的数据载体,很适合做数据存储或 RPC 数据交换格式,它序列化出来的数据量少再加上以 K-V 的方式来存储数据,对消息的版本兼容性非常强,可用于通讯协议、数据存储等领域的语言无关...com.google.protobuf插件,依赖于上面的build.gradle基本就可以将一个proto输入编译成一个jar工程。...所以这里我讲buf.yaml中读取出的deps转化成了一个depend.txt. com.xxxx.api:google-protobuf:7.7.7 depend.txt内会逐行写入当前模块的依赖,我们会对...name进行一次转化,变成一个可读的gradle工程名。...其中7.7.7的版本只是一个缺省而已,并没有实际的价值。 多线程操作 这里我们出现了一点点的性能问题, 如果可以gradle插件中尽量多使用点多线程,尤其是这种需要io的操作中。

    66810

    手把手教你如何从maven迁移到gradle

    : 测试依赖 gradle常用的依赖scope有 编译+运行时依赖 implemention,但是不传递编译依赖,只传递运行依赖 api既传递编译依赖,也传递运行依赖 运行时依赖 runtimeOnly...,类似maven的runtime 编译时依赖 compileOnly,类似maven的provided 测试依赖 testImplemention, 类似maven的test 与gradle的对比如下...,如果不考虑测试的话,完全可以使用compileOnly。...---- 当你不需要传递依赖时使用 implemention 当你需要传递依赖时使用 api 当你只需要测试时使用 testImplemention 当你只需要编译和测试,例如spring的autoconfigure...,使用optioanl插件,也就是gradle的registerFeature 当你只需要编译,测试也不需要,因为你确定容器或者其他模块一定会存在这个依赖,例如servlet api,使用compileOnly

    3.1K40

    Android dependencies 基础知识

    概述 在build:gradle2.x的时代,我们在进行第三方依赖时,会有一些尴尬的问题。比如,我们制作了一个库,依赖了Glide2.0 。项目组集成我们的库,同时也需要使用Glide4.0 。...所幸在build:gradle3.x中,google为我们提供了新的依赖方式。 Dependency configurations api 替代了之前的compile。...compileOnly 替代了之前的provided。这个是制作库时常用的方式。当我们使用这样的方式引入库时,我们不会将第三方依赖的实现加入到我们的自制库中。我们只在编译时使用了第三方依赖。...然后,我们在接口层的build.gradle中,我们加入: dependencies { ......compileOnly 'com.github.bumptech.glide:glide:4.8.0' compileOnly 'com.facebook.fresco:fresco:1.11.0

    2.7K20

    graduation和completion_guides和maven区别

    参考: android gradle依赖:implementation 和compile的区别 2017 年google 后,Android studio版本更新至3.0,更新中,连带着com.android.tools.build...:gradle 工具也升级到了3.0.0,在3.0.0中使用了最新的Gralde 4.0 里程碑版本作为gradle的编译版本,该版本gradle编译速度有所加速,更加欣喜的是,完全支持Java8。...在com.android.tools.build:gradle 3.0 以下版本依赖在gradle 中的声明写法 compile fileTree(dir: 'libs', include: ['*.jar...']) 但在3.0后的写法为 implementation fileTree(dir: 'libs', include: ['*.jar']) 或 api fileTree(dir: 'libs',...provided(compileOnly) 只在编译时有效,不会参与打包 可以在自己的moudle中使用该方式依赖一些比如com.android.support,gson这些使用者常用的库,避免冲突

    25730

    为什么要选择VersionCatalog来做依赖管理?

    theme: smartblue 虾扯淡 很多人都介绍过Gradle 7.+提供新依赖管理工具VersionCatalog,我就不过多介绍这个了。...Android 依赖管理及通用项目配置插件 【Gradle7.0】依赖统一管理的全新方式,了解一下~ 之前大部分文章只介绍了技术方案,很少会去横向对比几个技术方案之间的优劣。...其中ext可以在绝大部分的.gradle中去进行声明,所以就会导致依赖声明的过于零散。而这部分问题就不存在于buildSrc和toml中,他们只能被声明在固定的位置上。...|CompileOnly|test|Test|api|Api|kapt|Kapt|Processor)([ (])(\\D\\S*)".toPattern() private fun onGradleCheck...结尾 其实本文的核心是给大家分析下几种依赖管理方式的优劣,然后对于还在使用gradle ext的大佬,其实可以逐渐考虑进行替换了。 最后祝大家新年快乐了,兔年大吉吧!

    68920

    Android -Gradle依赖导入及相关知识

    api 完全等同于compile指令没区别 provided compileOnly 只在编译时有效,不会参与打包 ,可以避免包冲突 apk runtimeOnly 只在生成apk的时候参与打包,编译时不会参与...:前者allproject是整个项目本身需要的依赖,后者是gradle脚本执行所需依赖(Gradle插件),分别是对应的maven库和插件 task clear 运行gradle clean时,执行此处定义的...build.gradle 中添加如下的代码,该代码的意思是:在项目构建时,遍历所有依赖,然后 com.android.support 包下的依赖替换同一个版本。...结合编译期注解的作用,他是用来生成代码的,本身在运行时是不需要的,那么它与我们上面说的与compileOnly的区别是什么呢?...annotationProcessor作用是编译时生成代码,编译完真的就不需要了,compileOnly是有重复的库,为的是剃除只保留一个库,最终还是需要的。

    1.1K20
    领券