问题标签 [groovydsl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
325 浏览

groovy - 用于静态方法的 IntelliJ GroovyDSL

我正在为 IntelliJ 使用 GroovyDSL,我想描述一个静态方法,它返回同一类的实例。这是一种方法,例如:

据我了解,我应该使用上下文ctypefor java.lang.Class。但我不知道如何指定返回类型,目前我将其指定为java.lang.Object

问题:如何设置type为实际的类名?不是“对象”,而是“我的实体”

PS 有没有关于 GroovyDSL 的文档,JavaDoc 描述contributor

0 投票
1 回答
117 浏览

groovy - 如何在 Groovy-Eclipse DSL 中定义方法

我正在利用 groovy-eclipse 插件开发一种语言。我可以成功定义一个属性。但是,即使是简单的方法,我也不能这样做。可能我在所有中心都遗漏了一些非常简单的东西......

  • 我不能定义一个委托给简单闭包的方法吗?
  • 类型属性在方法切入点中定义什么?

以下是我的 groovy dsl 文件中的唯一贡献块;

这是一个简单的缺陷还是我需要改变我的观点?

0 投票
3 回答
6987 浏览

java - IntelliJ + groovy DSL:如何排除文件被 groovy 插件编译?

我正在开发一个使用 Liquibase groovy DSL 来管理数据库更改的 Java Web 项目。就本主题而言,它可以是使用*.groovy文件作为源的任何其他 3rd 方库。该项目是用 gradle 构建的。在我的文件夹下的一个模块(dao-base)中,src/main/resources我有 groovy 文件(changelog01.groovy, master_changelog.groovy等)。这些文件应该由 liquibase jar 在运行时加载。

现在,当我尝试在 IntelliJ 中创建项目时,它会给出以下错误消息:

Groovyc:无法编译 Groovy 文件:没有为模块“dao-base”定义 Groovy 库。

我知道 groovy 插件检测*.groovy文件,尝试编译它们并且不出所料地失败。这些是 groovy DSL 文件,只能由 3rd 方 liquibase 解析器加载,我不需要 IntelliJ 的 groovy 插件来尝试编译它们。

我设法提出了 2 个部分解决方案: 1. 在 intellij 中禁用 groovy 插件。此解决方案的问题在于 gradle 插件依赖于 groovy 插件,因此在禁用 groovy 插件时会自动禁用。我需要启用 gradle 插件。src/main/resources2.在项目设置-->模块--> dao-base(我的模块)-->源选项卡中排除文件夹。这个解决方案的问题是,当我构建项目并部署到 tomcat 时,资源文件夹中的文件丢失了,并且由于运行时需要其中的文件,所以当战争加载时我得到文件未找到异常。

我希望有人可以为这个问题提出更好的解决方案。

0 投票
0 回答
116 浏览

groovy - 在 IntelliJ 的 Groovy 单元测试中摆脱导入

是否可以摆脱用 Groovy 编写的 JUnit 测试中的 import 语句?我知道您可以通过更改编译器配置或导入定制器在 GroovyShell 中的 groovy 脚本中做到这一点。

我喜欢做同样的事情,但是:

  • IntelliJ 仍应提供代码突出显示和自动完成功能(我想我可以使用 IntelliJ 的 gdsl 文件功能来做到这一点)
  • 我仍然可以使用 IntelliJ 的 JUnit 窗口来查看哪些测试失败了,哪些测试通过了。
0 投票
1 回答
370 浏览

groovy - 如何在 Groovy MarkupBuilder 中动态注入子节点?

我正在尝试使用 Groovy MarkupBuilder 来动态创建我的自定义 XML 结构,如下所示。

虽然我得到了它使用下面的代码,但我想将代码的“有效负载”部分动态地注入到一个单独的类中,其中“构建器”作为方法参数传入。

println writer.toString()

0 投票
1 回答
136 浏览

intellij-idea - 使用 GroovyDSL 将方法添加到分配的闭包

Geb 使用一个静态字段content来定义页面或模块的内容。该content字段的值是一个闭包。

Intellij 已经支持此内容 dsl,但是它不支持moduleandmoduleList方法。这会在使用模块时导致有限的自动完成支持。

为了解决这个问题,我想编写一个 GroovyDSL 脚本,将缺少的方法定义添加到内容闭包及其嵌套闭包中。但是,我不知道如何将方法添加到未传递给方法的闭包中,因为enclosingCall需要具体的方法名称。

另一件事是这些方法必须具有这样的通用返回类型:

0 投票
2 回答
466 浏览

groovy - 如果使用@DelegatesTo 注释,如何将参数传递给闭包?

如果我在这里更改Groovy DSL Doc中的代码。

在电子邮件中添加一些字符串“hello world”,就像这样

和改变

那么,如何修改类 EmailSpec 以获取字符串 'hello world' ?

0 投票
0 回答
83 浏览

groovy - 带有 IDE 支持的 Groovy DSL

我需要一个 DSL,它具有一些已知的结构和很多仅在运行时结构中已知的结构。

例如:

在上面的代码片段中,关键字test, create,GETdelete在 DSL/工具的开发过程中是已知的。但是,当用户在create. 我想下载一些模式文件(相反,我会下载模式作为我处理的第一步并缓存模式)并提供实体,其中用户是实体之一。当用户为属性调用内容辅助时,我再次查看实体定义和提供fnln作为可能的条目。

这对 Groovy 和 GDSL 可行吗?谢谢你

0 投票
2 回答
709 浏览

grails - 如何使用任意 Map(动态对象)创建 DSL Groovy 配置文件

如何将任意 Groovy 映射/列表转换为 Groovy 提供的配置样式 DSL 语法?

例子:

类似于:


更新:

0 投票
1 回答
1563 浏览

groovy - Groovy Closure 重用与再水化副本

groovy 的 DSL 页面中,他们显示了这个

他们为什么打电话rehydrate而不是仅仅将委托分配给闭包:

换句话说,为什么我们需要一个闭包的副本而不是重用给定的闭包。我不一定认为使用补水有问题,但我也没有看到需要,这告诉我有些东西我不理解