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

Gradle Kotlin DSL指南

下面是一个例子,它在测试任务上定义了一个新的myNewTaskProperty,然后使用该属性初始化另一个任务: build.gradle.kts tasks { test {...要从Groovy调用Kotlin扩展函数,将其作为静态函数调用,并将接收方作为第一个参数传递: Groovy调用Kotlin扩展 TheTargetTypeKt.kotlinExtensionFunction...要从Kotlin调用Groovy扩展方法,可以采用相同的方法:将其作为静态函数调用,将接收方作为第一个参数传递。...要从Groovy调用具有默认参数的Kotlin函数,请始终传递所有函数参数的值 Kotlin给Groovy打电话 要从Kotlin调用一个带命名参数的Groovy函数,需要传递一个Map<String...配置blockName属性,映射到一个接受方法调用的Closure 调用另一个接受命名参数的方法,映射到一个Groovy命名参数Map<String, ?

9.9K20

Gradle 5.0 正式版发布

Kotlin DSL帮助信息 Kotlin DSL 1.0版本便提供了对Gradle的支持。...更高效的内存执行 更高效的内存执行命令行参数等特性允许更好的开发工作流,同时降低内存需求和缓存清理可以减少Gradle在系统上的开销。...JVM命令行参数 使用Gradle 5.0运行带有自定义参数的Java应用程序将比其他版本容易得多,因为您可以在命令行上或通过IDE简单地使用它们。...任务超时处理 现在您可以为任务指定超时时间,超时后任务将被中断。 自定义Cli 参数 Gradle 5.0提供允许用户配置自定义任务的新方法。...这使得自定义任务时能够将Gradle模型连接在一起,而不用担心给定的属性值被修改,也不用担心在任务配置期间会避免资源密集型工作。 升级指南 为了升级5.0版本。

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

Gradle 5.0 新特性介绍

我们将最近版本中的主要改进分为以下几类: 更快的构建 细粒度的传递依赖关系管理 编写Gradle构建逻辑 更高效的内存级别执行 新的Gradle调用选项 新的Gradle任务和插件api 在文章末尾,您可以进一步了解如何升级...这个特性还有其他用例,所以请按照上面的链接文档了解更多信息。 4.依赖版本锁定 您可以使用Gradle 5.0将动态或远程依赖项锁定特定的版本,从而使依赖项解析更加确定和可重现。...3.更加可导航和面向用例的文档 更高效的内存级别执行 像--fail--fast和JVM应用程序的命令行参数等特性允许更好的开发工作流,同时降低内存需求和缓存清理可以减少Gradle在系统上的开销。...4.JVM应用程序的命令行参数 使用Gradle 5.0运行带有自定义参数的Java应用程序要容易得多,因为您可以在命令行上或通过IDE简单地指定它们。...如何升级 请参考如何Gradle 4.x升级 Gradle 5.0: https://docs.gradle.org/5.0/userguide/upgrading_version_4.html

2.8K30

Gradle教程「建议收藏」

解压缩该项目,并在您喜欢的任何文本编辑器中打开存在于项目根目录中的build.gradle文件。...这样,Gradle提供了一种对开发人员友好的方式,即使提供了便利的约定和命令行实用程序,我们也不必手动缩短命令。 5.4排除任务 有些Gradle任务也依赖于其他任务。...这些阶段是: 第一 持续 在内部,Gradle任务表示为一个对象。 要开始执行第一阶段,我们必须调用已定义的方法之一,将闭包作为参数传递(闭包是匿名函数)。...接下来,我们定义并调用doFirst()方法,并传递一个闭包作为包含打印语句的参数。 类似地定义了下一个方法doLast() ,该方法本质上执行相同的操作。...Gradle包装器提供的另一个advantageGradle是,如果要切换到较新版本的Gradle,只需更改gradle-wrapper.properties的条目。

2K10

Gradle 构建脚本基础(introductory tutorial)

它可以表示其他项目生成的 jar 组装起来的发行版 ZIP。 一个项目并不一定代表要构建的东西。 它可能代表要做的事情,比如将应用程序部署登台或生产环境。 不要担心,如果这看起来有点含糊现在。...} } 在命令行 shell 中,移动到包含目录并使用 gradle-q hello 执行构建脚本: 本用户指南中的大多数示例都使用 -q 命令行选项运行。...有关影响 Gradle 输出的命令行选项的详细信息,请参阅日志记录。 > gradle -q hello Hello world! 这是怎么回事?...} } task intro { dependsOn hello doLast { println "I'm Gradle" } } 懒惰依赖——另一个任务还不存在...即使发布任务不是 primary 任务(即,传递gradle 命令的任务) ,这种方法也可以工作。 此示例之所以有效,是因为版本值只在执行时读取。

76620

Gardle 是什么

Gradle 是一个通用构建工具 因为Gradle 不对要做的构建或者如何构建做任何设想,所以Gradle几乎可以构建任务软件。...Gradle 的核心是基于任务 Gradle 将其构建建模为任务(工作单元)的有向无环图。意思是构建实际上是配置一组任务,并根据他们的依赖性创建一个有向无环图。...它们的作用类似于Gradle任务图,尽管不那么灵活。 Maven的构建生命周期概念与Gradle的生命周期任务大致相似。 好的设计构建脚本主要由声明式配置而非命令逻辑组成。...配置阶段另一个重要的方面是每次构建都会对其中涉及的所有内容做评估。这也是为什么应该在配置阶段避免多余的工作。构建扫描可以帮助你识别这样的事情。...Gradle 提供了以下几个主要方式去扩展它。 自定义任务类型 当 Gradle 本身的任务无法满足你的时候,你可以编写自己的任务类型。

60420

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

在 Android 版 Santa Tracker 工程的基准化分析中,对于启用了配置缓存的构建过程,我们测量出其在 Android Studio 中的总构建时间减少了 35% ( 688ms 443ms...您所要求执行的任务以及它们所依赖的任务都会被完全配置。这一过程将会持续触达没有依赖的叶子任务为止。配置的这一阶段将会输出一个任务图,Gradle 中的调度机制会使用该任务图来运行构建操作。...就像任务一样,构建服务可以包含输入信息,并且这些内容会在第一次运行后序列化。缓存的运行将会简单地反序列化参数并实例化任务所需的构建服务。...另一个方便之处是避免了在任务创建时创建不可序列化或者开销昂贵的对象,作为替代,会在我们的任务操作中需要时才创建它们。...避免访问环境对象或任何可以 Project 实例访问的其他对象。例如: 如果您的插件创建了配置,请将其作为 FileCollection 传递任务

2.3K20

Gradle教程和指南 – 创建Gradle构建

脚本 用于基于Windows的Gradle Wrapper脚本 设置配置脚本,用于配置哪些项目参与构建 gradle init命令可以生成不同类型的项目,甚至可以知道如何将简单pom.xml文件转换为...Gradle附带一个用于配置项目的任务库。例如,有个叫做Copy的核心类,它将文件从一个位置复制另一个位置。Copy任务非常的有用(详情请参阅文档),但是,在这里,我们再一次只是简单的使用它。...在主构建文件build.gradle中定一个名为copy的Copy类型任务。它将src目录复制一个名为dest的新目录中。...还提供了对命令行界面的完整引用。 查看可用的tasks tasks命令列出你可调用的Gradle任务,包括base插件添加的任务以及刚刚添加的自定义任务。 ❯ ....构建审视发布scans.gradle.com 并将这些数据上传到Gradle的服务器。要将数据保存在您自己的服务器上,请查看Gradle Enterprise.

1.7K40

Android Gradle 入门

Ubuntu完成的,当然比如涉及Gradle安装还会介绍一下Window的安装步骤,但是不会太多涉及Window的东西,这个关于本书一章里有提到,所以呢,还是希望读者们在阅读本书前已经掌握了这些知识...可是没有IDE给你用的,全部都是基于命令行的。这个就像我们第一次学习变成语言时老师没说让你用IDE,而是直接用记事本或者其他文本工具写,目的就是让我们不要太依赖第三方工具,这种才能不变应万变。...Group help BUILD SUCCESSFUL 帮助信息我们可以看到这个task有什么用,他是什么类型,属于哪个分组,有哪些可以使用的参数,比如这里就有–all参数,可以查看很多额外的详细信息...强制刷新很简单,只要在命令行运行的时候加上–refresh-dependencies参数就可以,这是IDE很难做到的(需要你了解配置),所以命令行的优势就体现出来了,非常简单。 ....通过命令行执行多个任务非常简单,只需要按顺序以空格分开即可,比如./gradlew clean jar,这样就可以了,有更多的任务时,可以继续添加。

84640

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

目前很多项目构建选择稳健的Maven工具,然而,作为一名Java开发,随着spring全家桶切换成gralde构建,以及越来越多的开源项目Maven过度GradleGradle成了程序开发必备的技能之一...常用的依赖scope有 编译+运行时依赖 implemention,但是不传递编译依赖,只传递运行依赖 api既传递编译依赖,也传递运行依赖 运行时依赖 runtimeOnly,类似maven的runtime...("hello from task") } } tasks.register("hello", GreetingTask) 在Tasks列表中的other栏下会出现 hello 在命令行输入...gradle -q 或者双击hello就可以执行该任务 > gradle -q hello hello from task 一个可配置的任务 abstract class GreetingTask extends...@Input参数,执行该任务: > gradle -q hello greeting hello from GreetingTask greetings from GreetingTask 具体关于Tasks

2.6K40

bat批处理简介:Windows自动化之道

CALL 另一个批处理程序调用这一个。 CD 显示当前目录的名称或将其更改。 CHCP 显示或设置活动代码页数。...批处理程序调用另一个批处理程序。...语法是: CALL:label arguments 一个新的批文件上下文由指定的参数所创建,控制在卷标被指定 后传递语句。您必须通过达到批脚本文件末两次来 "exit" 两次。...另外,批脚本文本参数参照(%0、%1、等等)已如下改变: ...... 有了这两个命令,我也就不需要像网上那些文章一样详细解释每个命令了,查阅文档即可。...PART 2:语法 如果只有这些命令,那么运行bat和在命令行执行没什么区别,最多把命令保存下来了方便以后运行。bat也支持一些编程语言的特性,虽然简陋且不够优雅,但应付简单的自动化任务基本够用。

2.1K21

为什么说 Gradle 是 Android 进阶绕不去的坎

影响因素: Gradle 版本:不同 Gradle 版本的构建不会关联同一个 Daemon 进程; Gradle 虚拟机参数:不满足的虚拟机参数不会关联同一个 Daemon 进程。...Gradle 版本,从而确保同一个工程移植其他电脑后能够正确地、可重复地构建; 减少了手动安装 Gradle 环境的工作量: 单单从 Gradle 4 Gradle 7 就有大大小小十几个版本,...// 不带隐式参数 it def magicNumber = { -> 42 } // error 不允许传递参数 magicNumber(11) 闭包参数简化: 函数的最后一个参数是闭包类型的化,在调用时可以简化...除了可以在创建 Task 后配置属性值,我们也可以在调用 TaskContainer#create() 时传递构造器参数。...为了将值传递任务构造函数,必须使用 @Inject 注解修饰构造器。

2.5K10

掌控 Android Gradle

其中-q表示忽略gradle本身的log信息,加上这个参数可以屏蔽很多无关的输出,不加也不会影响执行。...hello { println "hello"} Task依赖 单独声明一个task在实际开发中几乎不会有任何的意义,更多的时候是让多个task组合起来,一个依赖另一个,形成一连串的任务集。...task xxx << {} 这样的语法等价于 task xxxxxx.dolast {} 你可以在任意位置新建一个名为build.gradle文本,来练习上面讲述的task定义与依赖。 ?...如下代码是我在上一篇文章【企业级 Android 模块化平台设计建议】中讲到的一个例子,在setting.gradle文件中,可以指定一个project位置,这里就可以将一个外部工程中的模块导入APP...此刻,会在命令行中输出UP-TO-DATE表示已经是最新的结果。

60820

Gradle-构建生命周期

任务 任务 顾名思义就是一个在构建阶段被执行的操作。它是 Gradle 构建的原子工作单位。例如 编译 Java 源代码; 任务是定义在项目的构建脚本中,并且可以彼此依赖。...查找在命令行传入的任务名称相同的任务。 如果任务存在则作为一个单独的构建按照命令行传递的顺序执行。 多项目构建 多项目构建是在 Gradle 的单个执行过程中构建多个项目的构建。...project3:child1' Kotlin include("project1", "project2:child", "project3:child1") include 方法使用项目路径作为参数...includeFlat 'project3', 'project4' Kotlin includeFlat("project3", "project4") includeFlat 也是目录名字作为参数...会将评估的项目和状态传递进闭包里。

89930

Gradle 和 Maven构建工具

构建工具的诞生帮我们省去了不少的事情,随着Maven的出现,确实使我们眼前一亮,maven优化了上一代ant的复杂,给了我们一些目标,不需要我们将构建任务一个个的列出,同时它提供了依赖管理它通过简单的配置就可以自动网络上下载项目所需的依赖...就将自己的项目Maven迁移到了Gradle,Google官方Android开发的IDE Android Studio也默认使用了Gradle进行构建。...另外,gradle可以扩展其他生态圈,比如可以嵌入其他系统,因为gradle提供了一套tooling api。...,这些项目的对象将被配置,这个特性叫做configuration on demand 执行阶段 Gradle为在配置阶段创建和配置的任务再次筛选需要执行的任务的子集,这个子集的筛选是由在命令行传递给...比如Maven要发布制品,只需要配置远程仓库的参数,但是Gradle需要先生成pom文件才可进行制品发布。

89210

Gradle+Groovy基础篇

在Java项目中,有两个主要的构建系统:Gradle和Maven。构建系统主要管理潜在的复杂依赖关系并正确编译项目。还可以将已编译的项目以及所有资源和源文件打包.war或.jar文件中。...构建文件的关键是要意识它是一个脚本,内置在Groovy DSL中。...几乎可以说任何东西都可以是依赖项:本地文件,jar的目录,另一个Gradle项目等等,并且可以将依赖项配置为执行某些操作,例如排除某些子依赖项。...Gradle令行gradle。但是,您会注意在网上的许多地方,您都会看到./gradlew或gradlew.bat。这些是调用包装程序的命令。...另一个有助于解决问题的properties任务是该任务,该任务列出了在根项目对象实例上定义的所有属性。 当然,在开发Spring Boot项目时,可以使用命令:.

2K20
领券