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

"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 分组 : 只对 依赖 进行编译操作 , 该 依赖 不参与 打包 ; 上述是已经弃用 配置依赖分组

53310

【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 依赖 是 编译时 为工程添加依赖

1.3K10

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中,运行时使用。没有使用过。

8.5K21

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区别。...新建工程默认生成appbuild.gradle文件中依赖: dependencies { implementation fileTree(include: ['*.jar'], dir...implementation指令 这个指令特点就是,对于使用了该命令编译依赖,对该项目有依赖项目将无法访问到使用该命令编译依赖任何程序,也就是将该依赖隐藏在内部,而不对外部公开。...但是,如果testLib使用api来引用Glide: api 'com.github.bumptech.glide:glide:3.8.0' 则与gradle3.0.0之前compile指令效果完全一样

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这些使用者常用库,避免冲突

6.9K30

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

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

1.7K20

Android使用Gradle依赖配置compile、implementation与api区别介绍

gradle插件升级到3.0.0及以上后,我们会发现在gradle中添加依赖时候,会推荐你使用implementation或者api,而不再推荐你使用compile,今天就来简单介绍下这两者使用与区别...classpath 'com.android.tools.build:gradle:3.0.0' 在新建一个Android工程时候,build.gradle依赖默认为implementation,...另外,gradle 3.0.0版本以上,还有依赖指令api。本文主要介绍下implementation和api区别。...新建工程默认生成appbuild.gradle文件中依赖: dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs...但是,如果testLib使用api来引用Glide: api 'com.github.bumptech.glide:glide:3.8.0' 则与gradle3.0.0之前compile指令效果完全一样

67531

解决 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

1.8K00

Android Studio3.1.0升级问题记录

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

84120

Android Studio中Gradle依赖深入讲解

前言 Android studio依赖项目是使用gradle管理依赖一个项目、一个jar包、一个工程,都可以在这里进行配置,本文将给大家详细介绍关于Android Studio中Gradle依赖相关内容...依赖aar: // 在modulebuild.gradle中增加如下语句: repositories { flatDir { dirs 'libs' } } // 可以一条依赖引入libs...二、不同依赖配置方式区别:compile、implementation、api 从Android Gradle plugin 3.0开始,对于依赖配置方式,引入了implementation和api...:provided、api、apk、compileOnly、runtimeOnly、渠道名+Compile,差异主要在于构建内容和参与构建时机,多样配置方式满足了开发者花样需求,具体区别如下: 1...+api/compile指定,比如debugApi、releaseApi、testApi 3、compileOnly(provided): 主要是为了方便程序编译通过,不会打包到apk中,使用场景:android

2.2K20

一文彻底搞清Gradle依赖

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

4.6K20

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

10.9K41

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操作中。

60210

gradle tool升级到3.0注意事项小结

Gradle版本升级 其实当AS升级到3.0之后,Gradle Plugin和Gradle不升级也是可以继续使用,但很多新特性如:Java8支持、新依赖匹配机制、AAPT2等新功能都无法正常使用。...api: 对应之前compile关键字,功能一模一样。...会传递依赖,导致gradle编译时候遍历整颗依赖树 implementation: 对应之前compile,与api类似,关键区别是不会有依赖传递 compileOnly: 对应之前provided...,依赖仅用于编译期不会打包进最终apk中 runtimeOnly: 对应之前’apk’,与上面的compileOnly相反 关于implementation与api区别,主要在依赖是否会传递上。...如:A依赖B,B依赖C,若使用api则A可以引用C,而implementation则不能引用。

29110

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

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

2.6K40

用Android Studio3.0新功能加快构建速度

增量 Java 编译默认情况下处于启用状态,这种编译方式仅对发生变化需要重新编译源代码部分进行重新编译,可以缩短开发过程中编译时间。...要想使用D8编译器,把以下代码添加到工程gradle.properties 文件即可 android.enableD8=true 使用新依赖方式 也就是指dependencies代码块引用 dependencies...4种引入方式 * implementation 相当于原来compile * api 相当于原来compile * compileOnly 相当于原来provided * runtimeOnly...简单总结下: implementation:C引用A,即使A库implementation方式引用B,C也不会引用B api :C引用A,并且A库用api方式引用B,C会引用B compileOnly...只依赖库用来编译,不会把库打包进apk,在一些特定场景很有用 runtimeOnly 不用来编译,但是会打包到apk,这个方式是deprecated(不推荐使用) 参考 配置构建 Migrate to

95820

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.6K20
领券