在自定义插件中检索ConventionMapping

西尔福斯

我正在编写使用自定义扩展对象的gradle自定义插件。我知道我必须使用ConventionMapping懒惰地从此SO Answer and Gradle论坛中评估扩展对象的值

当我尝试使用普通的Gradle API(而不是DSL API编写插件时,就会发生问题我认为我想这样做是因为它对IDE更友好。因此,任务创建是这样完成的:

MyTask task = project.tasks.create("mytask", MyTask)
task.?conventionMapping? ..

代替

project.task(type:MyTask) {
   conventionMapping.field = ..
}

MyTask正在扩展DefaultTask,因此它没有ConventionMapping字段。然后我发现Gradle的Java插件中的一些Task实现正在扩展ConventionTask,我认为我应该从中扩展,但是不幸的是,这些事实使我再次感到困惑:

  1. ConventionTask软件包是内部的
  2. 用@NoConventionMapping注释DefaultTask

我还发现此线程说我不应该约定。所以我的问题是,ConventionMapping仍然是编写使用扩展插件的正确方法吗?如果是,在没有gradle dsl魔术的情况下检索它们的正确方法是什么?

彼得·尼德维瑟

约定映射是当前可用于解决“延迟配置”问题的最强大的解决方案,但它被视为内部功能。在某些时候,它将不再支持新的配置模型(它将是一个公共功能)。同时,解决“延迟配置”问题的另一种解决方案是使用诸如的回调project.afterEvaluate { ... }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

是否可以在Wordpress中检索在插件中定义的自定义字段的值?

来自分类Dev

Gradle中的自定义任务/插件

来自分类Dev

Gradle中的自定义任务/插件

来自分类Dev

在Worklight中创建自定义插件

来自分类Dev

自定义插件中的 Javascript 问题

来自分类Dev

自定义插件中的默认操作

来自分类Dev

自定义插件中的覆盖功能

来自分类Dev

自定义插件,位于TinyMCE jQuery插件的自定义目录中

来自分类Dev

Checkmarx的自定义插件

来自分类Dev

jQuery自定义插件

来自分类Dev

自定义jQuery插件

来自分类Dev

Checkmarx的自定义插件

来自分类Dev

在 Docusign 中从模板中检索自定义字段

来自分类Dev

在jenkins中自定义电子邮件ext插件

来自分类Dev

Eclipse插件中的“自定义弹出菜单”

来自分类Dev

如何在自定义插件中编写dependsOn

来自分类Dev

在自定义gradle插件中获取classpath依赖项

来自分类Dev

在自定义gradle插件中从jar复制文件

来自分类Dev

在Drupal 7中集成自定义jQuery插件

来自分类Dev

Wordpress插件中的自定义错误处理

来自分类Dev

在jQuery插件中自定义显示文本-jqpagination

来自分类Dev

Webworks 2.0在Java中添加自定义插件

来自分类Dev

从自定义任务中调用grunt插件

来自分类Dev

在WordPress中的自定义插件上添加按钮

来自分类Dev

将数据插入Wordpress插件的自定义表格中

来自分类Dev

DataTables中的自定义顺序(jQuery插件)

来自分类Dev

joomla中的jQuery自定义插件不起作用

来自分类Dev

通过网址在joomla插件中调用自定义函数。

来自分类Dev

Wordpress中的自定义新闻通讯插件开发