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

Gradle Kotlin DSL指南

如果上面的方法还不足以查明问题所在,您可以在IDE中启用org.gradle.kotlin.dsl.logging.tapi系统属性。...你在Kotlin DSL脚本中读到的所有东西都是由Gradle编译和执行的Kotlin代码。你在构建脚本中使用的许多对象、函数和属性都来自于Gradle API和应用插件的API。...但是,如果你只需要配置属性或调用所有任务共有的方法,也就是说,它们是在Task接口上声明的,你可以忽略该类型。 你可以通过运行gradle tasks来发现哪些任务可用。...下面是一个例子,它在测试任务上定义了一个新的myNewTaskProperty,然后使用该属性初始化另一个任务: build.gradle.kts tasks { test {...reportType额外属性 使测试任务的reportType额外属性可用来配置archiveTestReports任务 如果你喜欢使用急切配置而不是配置避免api,你可以为报告类型使用一个单一的“全局

10K20

Gradle+Groovy基础篇

在Java项目中,有两个主要的构建系统Gradle和Maven。构建系统主要管理潜在的复杂依赖关系并正确编译项目。还可以将已编译的项目以及所有资源和源文件打包到.war或.jar文件中。...您所见,这些函数将一系列依赖项作为字符串传递。那么,为什么不使用更传统的静态数据结构(JSON,属性或XML)呢?原因是这些重载函数也可以使用闭包代码块,因此可以进行深度自定义。...如果打开终端并cd进入示例项目的基本目录,则可以使用gradle tasks列出build.gradle文件定义的所有任务。tasks当然,它本身是由基本Gradle API定义的任务。...您可以使用该dependencyInsight任务来深入了解特定的子依赖项。 另一个有助于解决问题的properties任务是该任务,该任务列出了在根项目对象实例上定义的所有属性。...到此,基础篇完事儿,提高篇中将会实践一下自定义任务和Groovy闭包在Gradle配置文件build.gradle文件中如何使用。

2K20
您找到你想要的搜索结果了吗?
是的
没有找到

【Android Gradle 插件】Gradle 扩展属性 ② ( 定义在根目录 build.gradle 中的扩展属性 | 使用 rootProject.扩展属性名访问 | 扩展属性示例 )

文章目录 一、定义在根目录 build.gradle 中的扩展属性 二、扩展属性示例 Android Plugin DSL Reference 参考文档 : Android Studio 构建配置官方文档...org.gradle.api.tasks.testing.Test 单元测试配置类 : https://docs.gradle.org/current/javadoc/org/gradle/api...build.gradle 构建脚本中 , 则所有的 Module 模块下的 build.gradle 都可以获取到该扩展属性值 ; 在 Module 下的 build.gradle 中可以使用 rootProject....扩展属性名 来访问定义在根目录中 build.gradle 中定义的扩展属性值 ; 二、扩展属性示例 ---- 在根目录下的 build.gradle 中定义扩展属性 : // 定义扩展属性 , 其中的变量对所有子项目可见...:4.2.1" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE

2.9K20

Gradle 5.0 正式版发布

Kotlin DSL帮助信息 Kotlin DSL 从1.0版本便提供了对Gradle的支持。...Kotlin中的静态类型允许工具提供更好的IDE帮助,包括调试和重构构建脚本、自动完成和您期望的其他一切。 如果您对用Kotlin编写构建感兴趣,可以从Gradle Kotlin DSL入门开始 ?...扩大和互动 希望使用Gradle构建项目的用户可以选择其他项目类型一起使用,kotlin-library和kotlin-application。...日志 在Gradle 5.0中,日志消息可以按照非交互环境(持续集成执行),进行日志消息的任务分组。...这使得自定义任务时能够将Gradle模型连接在一起,而不用担心给定的属性值被修改,也不用担心在任务配置期间会避免资源密集型工作。 升级指南 为了升级到5.0版本。

2.3K30

使用新 Android Gradle 插件加速您的应用构建

Gradle 配置缓存可以将配置阶段的输出进行缓存,并且在后续构建中复用这些缓存。当配置缓存命中,Gradle 会并行执行所有需要构建的任务。...△ 存储配置缓存的过程 当所有任务都配置完成后,Gradle 可以根据我们的配置计算出最终的任务执行图。随后配置缓存会将这个任务执行图缓存起来,并将各个任务的执行状态进行序列化,再放入缓存中。...从上图可以看到,所有任务输入也会被存储到缓存中,因此它们必须是特定的 Gradle 类型,或是可以序列化的数据。...示例中构建脚本的第 5 和第 11 行导致了这些问题。...相比仅扩展 DSL,扩展 Variant API 有这样一些优势: DSL 值是固定的,但自定义变体属性可以使用构建任务的输出,Gradle 会自动处理所有构建任务的依赖项。

2.6K30

Kotlin 之美

Kotlin 新增了顶层声明的类别(顶层函数和顶层属性,无需放在类中的属性和方法)。...通用编程语言 vs DSL 通用编程语言( Java、Kotlin、Android等),往往提供了全面的库来帮助开发者开发完整的应用程序,而 DSL 只专注于某个领域,比如 SQL 仅支持数据库的相关处理...Gradle 构建 Gradle 的构建脚本是 groovy,对 Android 程序员有一定的学习成本,目前,Gradle 官方也提供了基于 Kotlin 的构建脚本:Gradle Kotlin DSL...扩展函数(扩展属性) 对于同样作为静态语言的 Kotlin 来说,扩展函数(扩展属性)是让他拥有类似于动态语言能力的法宝,即我们可以为任意对象动态的增加函数或属性。...而更进一步, Kotlin DSL 则是对 Kotlin 所有语法糖的一个大融合,她的代码结构通常是链式调用、lambda 嵌套,并且接近于日常使用的英语句子,我们可以愉悦的使用 DSL 风格的 API

2.9K20

【Android Gradle 插件】Gradle 扩展属性 ① ( Gradle 扩展属性简介 | Gradle 自定义 task 任务示例 )

文章目录 一、Gradle 扩展属性简介 二、Gradle 自定义 task 任务示例 ( 扩展属性示例 ) Android Plugin DSL Reference 参考文档 : Android Studio...在 Groovy 中定义扩展属性代码如下 : 扩展属性是全局变量 , 对所有子项目可见 ; // 定义扩展属性 , 其中的变量对所有子项目可见 ext { hello1 = 'Hello World1...} 二、Gradle 自定义 task 任务示例 ( 扩展属性示例 ) ---- 在 build.gradle 中定义 变量 , 然后自定义 task 任务 , 输出该变量 , 代码如下 : // 定义局部变量...// 定义扩展属性 , 其中的变量对所有子项目可见 ext { hello1 = 'Hello World1!' hello2 = 'Hello World2!'...// 定义扩展属性 , 其中的变量对所有子项目可见 ext { hello1 = 'Hello World1!' hello2 = 'Hello World2!'

67920

深入探索 Android Gradle 插件的缓存配置

Gradle 的版本应为 6.6,同时如果您正在使用 Kotlin,请将 Kotlin Gradle 插件更新为最新的 1.4 版 (相关 Kotlin issue)。...它可以序列化所有的 Gradle-managed 类型 ( FileCollection、Property、Provider) 以及所有用户定义的可序列化类型。...为了保证正确性,Gradle 会持续跟踪会影响已缓存的任务图的所有输入,包括构建文件、请求执行的任务以及配置过程中对于 Gradle系统属性的的访问。...访问 Gradle/系统 属性与环境变量 如果您使用系统属性Gradle 属性、环境变量或者额外文件来指定构建的逻辑输入时,会产生怎样的结果?...下面的示例展示了如何获取影响配置的 enableTask 系统属性值,以及如何获取仅作为任务输入的系统属性 anotherFlag。

2.3K20

【Android Gradle 插件】将自定义 Gradle 插件上传到自建 Maven 仓库 ④ ( 默认生成的 pom 文件 | Maven 中的 pom 配置 | 自定义 pom 文件节点 )

Android 测试相关文档 : https://developer.android.google.cn/training/testing UnitTestOptions ( build.gradle...org.gradle.api.tasks.testing.Test 单元测试配置类 : https://docs.gradle.org/current/javadoc/org/gradle/api...自带任务 ( clean 任务类型 ) 文档 : https://docs.gradle.org/current/dsl/org.gradle.api.tasks.Delete.html org.gradle.api.tasks.bundling.Zip...自带任务 ( 任务类型 ) 文档 :https://docs.gradle.org/current/dsl/org.gradle.api.tasks.bundling.Zip.html org.gradle.api.tasks.bundling.Jar...自带任务 ( 任务类型 ) 文档 : https://docs.gradle.org/current/dsl/org.gradle.api.tasks.bundling.Jar.html Gradle

1.4K10

【Android Gradle 插件】TestOptions 配置 ④ ( org.gradle.api.tasks.testing.Test 单元测试配置类 | Android 单元测试示例 )

文章目录 一、org.gradle.api.tasks.testing.Test 单元测试配置类 1、Test 单元测试配置回顾 2、启动单元测试 3、设置 JVM 系统属性 4、打开命令行标准输出...二、单元测试示例 单元测试gradle 配置 1、右键运行单元测试 3、执行单元测试 Gradle 任务 4、查看单元测试命令行输出 5、查看单元测试报告 Android Plugin DSL Reference...启用 TestNG 支持 , 也就是启用 单元测试 , 默认的单元测试类型是 JUnit 单元测试 ; useTestNG() 3、设置 JVM 系统属性测试的 Java 虚拟机 ( JVM )...设置系统属性 , Gradle 中的单元测试 运行在独立的 JVM 虚拟机中 , // set a system property for the test JVM(s) systemProperty...在单元测试类中 , 鼠标右键点击单元测试方法名 , 即可执行该方法 ; 注意 : 在单元测试类中 , 点击右键运行不会生成测试报告 , 执行结果 : 3、执行单元测试 Gradle 任务 标准的单元测试

1.2K20

深入理解Gradle构建系统的工作原理

它采用了基于Groovy和KotlinDSL(领域特定语言),使得构建脚本更加简洁、灵活。...作为一种基于Groovy和KotlinDSL(领域特定语言),Gradle使得构建脚本编写更加简洁、易读,并且具有高度可维护性。...任务(Task) 任务Gradle构建过程的最小单元,它代表着构建过程中的一个操作。在Gradle中,您可以执行各种各样的任务编译代码、运行测试、打包应用等。...GRADLE的核心概念:介绍了Gradle构建系统的核心概念,任务、项目、插件和扩展,以及它们在构建过程中的作用。...Gradle DSL参考 - GradleDSL(Domain Specific Language)参考文档,详细解释了Gradle构建脚本中的各种配置选项和属性

21810

Gradle 5.0 新特性介绍

此外,gradle init还扩展了项目类型和交互性。 1.Kotlin DSL支持 Kotlin DSL 1.0从Gradle 5.0开始就可以使用了。...5.0中,日志消息现在按照为非交互环境(持续集成执行)生成日志消息的任务分组。...除了显示正在执行哪些测试之外,Gradle丰富的命令行控制台还显示了一个彩色的构建状态,可以一眼看出是否有任何测试失败。您还可以要求Gradle任务使用“详细”控制台模式执行时记录它们。...为需要使用内部api的任务提供自定义的嵌套DSL。...这使得自定义任务作者能够将Gradle models连接在一起,而不用担心给定的属性值何时会被知道,也不用担心在任务配置期间会避免资源密集型工作。

2.8K30

Gradle Authoring Tasks

在入门教程中,您学习了如何创建简单的任务。 稍后您还学习了如何向这些任务添加额外的行为,并学习了如何在任务之间创建依赖关系。 这一切都是关于简单的任务,但 Gradle任务的概念更进一步。...Gradle 支持增强型任务,这些任务具有自己的属性和方法。 这与您习惯使用 Ant 目标的情况大不相同。 这些强化的任务要么是你提供的,要么是内置在 Gradle 的。...首先,就像定义任务一样,Groovy 和 Kotlin DSL 也有特定于语言的语法: println hello.name println project.hello.name println copy.destinationDir...Passing arguments to a task constructor 将参数传递给任务构造函数 与在创建 Task 后配置可变属性相反,您可以将参数值传递给 Task 类的构造函数。...Gradle所有内置任务都会及时响应超时。

78810

【Android Gradle 插件】将自定义 Gradle 插件上传到自建 Maven 仓库 ⑧ ( 设置 Gradle 插件模块 | 将 Gradle 插件上传到自建 Maven 仓库 )

文章目录 一、设置 Gradle 插件模块 二、执行发布 Gradle 插件任务Gradle 插件上传到自建 Maven 仓库 Android Plugin DSL Reference 参考文档 :...org.gradle.api.tasks.testing.Test 单元测试配置类 : https://docs.gradle.org/current/javadoc/org/gradle/api...自带任务 ( clean 任务类型 ) 文档 : https://docs.gradle.org/current/dsl/org.gradle.api.tasks.Delete.html org.gradle.api.tasks.bundling.Zip...自带任务 ( 任务类型 ) 文档 :https://docs.gradle.org/current/dsl/org.gradle.api.tasks.bundling.Zip.html org.gradle.api.tasks.bundling.Jar...自带任务 ( 任务类型 ) 文档 : https://docs.gradle.org/current/dsl/org.gradle.api.tasks.bundling.Jar.html Gradle

95730
领券