从 gradle 扩展访问配置闭包

2023-12-25

我正在编写一个插件,其中执行如下操作:

project.extensions.create('myExtension', new MyExtension(project))

where MyExtension是定义我的新功能的类。

Now, in gradle.build我可以做这个:

myExtension {
    // configure cool stuff
}

我现在想做的是“使用”此配置闭包中的一些内容,并将闭包的其余部分按原样传递给我定义的任务,使用project.configure(myTask, closure)。但是,我不知道如何

  1. 从以下位置访问配置闭包MyExtension class.

  2. “消耗”一些闭包,即访问闭包上的一些属性,然后剥离它们,留下另一个闭包,其中包含所有未触及的内容,但没有其他内容

任何指示将不胜感激=)


这不是扩展的工作原理。立即评估闭包以配置扩展对象。之后,关闭就消失了。通常,插件将使用扩展对象(包含在其中的信息)来进一步配置任务。

PS:这是extensions.create('myExtension', MyExtension, project), not project.extensions.create('myExtension', new MyExtension(project)).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 gradle 扩展访问配置闭包 的相关文章

随机推荐

  • 如何添加用户脚本js文件作为Chrome扩展?

    我目前一直在为 Chrome 开发用户脚本 这些脚本可以在不使用 Tampermonkey 的情况下运行 今天我在 Chrome 扩展中添加了一个第三方扩展 userscript js UserScript name job changer
  • 如何让 python 程序运行而不是在记事本中打开?

    我在打开 py 文件时遇到一些问题 我有一个程序调用这个 py 文件 即路径名 example py file txt 但它不是运行 python 程序 而是在记事本中打开它 我如何让它运行 程序本身接收一个文件 并创建一个更可读的输出 编
  • 未找到框架 Protobuf

    I am facing an issue wherein I needed to use FirebaseRemoteConfig for my iOS app I included the following pod pod Fireba
  • 具有自己的文件偏移量的重复文件描述符

    如何从现有文件描述符创建新文件描述符 使得新描述符不共享文件表中相同的内部文件结构 条目 具体来说 诸如文件偏移量 最好是权限 共享和模式 之类的属性不应在新旧文件描述符之间共享 在 Windows 和 Linux 下 dup 将复制文件描
  • mingw 3.4.5 缺少 dlfcn.h?

    难道是我的mingw 3 4 5安装有问题 还是其他一些图书馆提供了这个 如果您想知道 dlfcn h 是定义 dlopen 和 dlclose 等内容的地方 所以它应该是相当标准的 dlfcn win32 http code google
  • Sonata Admin (2.3) 中的嵌套集合字段

    我在创建用于创建课程的表单时遇到问题 这是我的数据库方案的一部分 我正在尝试为其创建一个表单 所以我想做的是创建一个课程 我可以在其中创建会话和附加到该会话的日期 时刻 它应该看起来像这样 In my 课程管理我有的课 protected
  • 从子 textInputEditText 获取父 textInputlayout

    我正在实现一个功能来更改大小写textInputlayout提示文本为大写当提示浮起时 反之亦然 为此我正在使用OnFocusChangeListener在它的孩子身上textInputEditText 为了使其易于实施 我正在实施View
  • 删除java中的符号链接

    是否有任何 api 可用于使用 java util Date 删除符号链接 Files delete Path 不起作用 请发表您的建议 Files delete Path 在符号链接上完美运行 您的代码中应该还有其他问题 此代码示例有效
  • 如何在 C# 中保存文件和在数据库中插入记录之间创建 Transactionscope

    我有一个问题 保存文件并在 TransactionScope 的数据库中插入记录 表示保存文件和插入记录 必须一起依赖 或两者或两者都不依赖 有人可以帮我吗 事务性 NTFS 最酷的部分之一 事务性 NTFS 是它可以工作 与大量其他 交易
  • JavaScript继承框架

    是否有一个小型 轻量级的 JavaScript 类继承解决方案 可以在客户端和服务器端 node js 上正常工作 我不需要一个大的库 只是需要一个允许我声明构造函数和一些方法 然后让类能够继承它的库 John Resig 用大约 25 行
  • React Router 显示所有路由的一个组件(标头)

    有一个关于 React 路由器的问题 我有一个标题项目 我想为所有路线显示该标题项目 当然 我希望它成为 的一部分 以便用户可以单击导航中的项目 目前我有我的
  • Go 练习之旅 #18:切片、索引超出范围

    我正在完成围棋之旅中的练习 但遇到了一个我无法解决的障碍 我正在做Exercise Slices https tour golang org moretypes 18我收到此错误 256 x 256 panic runtime error
  • 具有多个文本字段输入视图的多个选择器视图 Swift

    我一直在论坛中进行搜索 但没有任何帮助 我在一个视图控制器中使用 4 个文本字段 对于每个文本字段 我使用一个单独的 pickerView 作为文本字段 4pickers 的 inputView 当我单击第一个文本字段时 pickerVie
  • 使用 GraalVM 构建本机应用程序时缺少 cl.exe

    我正在尝试使用 GraalVM 和本机映像构建本机应用程序 启动构建过程时发生错误 类路径中似乎缺少 cl exe 正如 GraalVM 网站上提到的 我已经安装了 GRMSDKX EN DVD iso 适用于 Windows 7 和 NE
  • Arrayformula 在谷歌表格中使用 countif 来计算当前行之前的重复项[重复]

    这个问题在这里已经有答案了 我只需要计算当前行之前的重复项 我需要它位于数组公式中 因为我需要它在添加新行时自动扩展 在 Excel 中 我会使用一个带有类似以下函数的表 COUNTIF A 2 A2 B2 gt 在单元格 C2 中 在单元
  • 使用 AWS CodeBuild 进行 docker 推送失败,退出状态为 1

    我创建了由 CodePipeline 触发的 CodeBuild 项目 并且 docker Push 步骤始终失败 并显示 原因 退出状态 1 错误消息 以下是我的构建日志 将我的组织 ID 替换为 Container 2021 06 12
  • 如何从 GMSMapView 中删除 GMSPolygon

    是否有任何方法可以从 GMSMapView 中删除 GMSPolygons 它似乎不存在包含它们的 GMSMapView 属性 如 GMSPlolyLines 我应该清除地图并再次渲染吗 thanks 当您创建GMSPolygon你设置它的
  • 如何知道窗口是否被“x”按钮关闭?

    有谁知道如何找出wpf窗口是否被 x 按钮关闭 最简单的方法 在我看来 是存储一个布尔值 指示用户是否通过其他方法关闭了表单 然后在 OnClosing 事件中 检查布尔值是否为 false 表示单击了 x 按钮 唯一的问题是您自己设置了布
  • Rails 和 Socket.io (node.js)

    我打算使用 Rails 应用程序来提供由 node js 服务器和 Socket io 处理的实时数据 在 Socket io 网站上 它说 如果您不会利用 Node JS 来提供服务 您的文件 请确保设置 全球的WEB SOCKET SW
  • 从 gradle 扩展访问配置闭包

    我正在编写一个插件 其中执行如下操作 project extensions create myExtension new MyExtension project where MyExtension是定义我的新功能的类 Now in grad