问题标签 [groovysh]

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 回答
268 浏览

groovy - 需要帮助在 groovysh 中实现新命令

我发现关于为 Groovysh 构建新命令的信息非常少。我想将它用作我的开发环境的正常部分,在某种程度上取代 cmd.exe()。

我确实注意到 groovysh 中有一个“注册”命令,可让您注册新命令。在什么都没找到后,我最终查看了现有命令的源代码并提出了这个:

这完成了我想要的大部分工作,但我有几个问题。首先,传递给“执行”的东西以一种丑陋的方式进行了预解析。如果我试图找到一个像“测试奇怪间距”这样的字符串,我会得到 [“测试,奇怪,间距”] 我可以使用引号来重建应该作为单个字符串引用的内容,但我无法替换额外的空格"

第二个问题是我想使用制表符完成。我可以看到有 getCompleter 和 makeCompleters 命令,但没有关于完成程序是什么的信息...... javadocs 链接到一个不存在的页面。

JLine 库中有完成者,但我不确定它们是否相同(我倾向于怀疑它,因为 JLine 无法从 groovysh 访问,如果您需要使用它们来编写脚本,您会认为它们可以访问)

如果有人知道一个博客可以指导您如何做这种事情 - 或者有一些最小的例子,我会很感激帮助。

0 投票
2 回答
32372 浏览

groovy - 如何在 groovysh 中声明和使用 Set 数据结构?

我试过了:

我希望能够将它作为一个集合使用,但即使我明确地传递它,它也会将它变成一个 ArrayList:

0 投票
1 回答
193 浏览

groovy - 如何更改 groovysh.profile 的默认位置?

我需要使用在 groovysh.profile 中注册的不同自定义命令集在同一主机上与同一用户运行几个应用程序。是否可以告诉 groovysh 不加载 $HOME/.groovy/groovysh.profile 而是加载某些命令行参数中设置的内容?

0 投票
1 回答
802 浏览

groovy - Groovy 脚本中的可选参数

我有一个简单的脚本

当我使用以下方法调用它时:

它工作正常。但是,如果我在没有如下参数的情况下运行它:

它失败了MissingPropertyException

我怎样才能分配默认值,optionalParameter这样我就不会得到MissingPropertyException

0 投票
1 回答
120 浏览

groovy - 使用 HBase 时的 grovysh 导入失败

我需要什么 *.jar 才能使我的 groovysh 与 hbase 1.1.2 一起工作我正在尝试运行一个简单的脚本并且以下导入失败 - groovy:000>

错误 java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/io/HeapSize at java_lang_Runnable$run.call (Unknown Source) groovy:000>

错误 java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/CellScannable at java_lang_Runnable$run.call (Unknown Source) import org.apache.hadoop.hbase.util.Bytes 导入定义无效:'org.apache.hadoop.hbase .util.Bytes'; 原因:启动失败:script14891462389401754287428.groovy:1:无法解析类 org.apache.hadoop.hbase.util.Bytes @ 第 1 行第 1 列。

我已经在我的 -classthpath 中加载了 hbase-client.jar。只需要编写一个简单的脚本来放置和递增 hbase 变量并通过 groovysh 执行。

编辑 1 我现在得到这个 groovy:000> groovy.grape.Grape.grab(group:'org.apache.hbase', module:'hbase-client', version:'1.3.0') ERROR java.lang.RuntimeException : 抓葡萄时出错——[下载失败:junit#junit;4.12!junit.jar,下载失败:org.slf4j#slf4j-api;1.7.7!slf4j-api.jar,下载失败:org.slf4j#slf4j- log4j12;1.6.1!slf4j-log4j12.jar] groovy:000> groovy.grape.Grape.grab('org.apache.hbase:hbase-client:1.3.0')

0 投票
2 回答
445 浏览

groovy - Groovysh 葡萄导入不起作用

我正在使用 Groovysh,我需要用 Grape 加载一些类。现在我正在尝试这个:

但是,在我输入导入后,Groovy 说

groovysh_evaluate: 4: 无法解析类

奇怪的是,如果我试试这个:

第一次导入和声明失败,但第二次成功。这可能是一个错误,或者我做错了什么。我目前正在使用 Groovy 2.4.12,任何帮助将不胜感激。当我在脚本中尝试同样的事情时,它工作得很好,所以我很困惑。我也尝试过使用解释器模式,但也没有运气。

0 投票
1 回答
324 浏览

groovy - groovy:groovysh 解释器模式首选项不起作用

我正在尝试设置interpreterModegroovysh。我打开groovysh并执行set interpreterMode,但是当我尝试使用时def x=1x没有设置:

我究竟做错了什么?

0 投票
1 回答
112 浏览

groovy - groovysh:如何处理错字

这似乎是一个非常愚蠢的问题,但是当我使用 时groovysh,如果我有错字,它似乎会杀死整个外壳。

例如,如果我想遍历一个数组,我可以这样做arr.each { elt ->。但是如果我不小心输入arr.each { elt =>了,那么我以后输入的每一行都会导致

如果不杀死 shell 并重新启动它,我就无法回到正常工作的 shell,这意味着我失去了在 shell 中完成的所有工作。

有没有办法摆脱这种情况?

0 投票
1 回答
961 浏览

apache-spark - 如何使 groovysh 与 apache spark 一起工作

我成功地将 Apache Spark 与 Groovy 一起使用,但是我没有运气groovysh用作交互式 spark shell。

另一方面,看似等效的 groovy 脚本工作得很好

我正在寻找一种方法来修复上述错误并了解groovysh环境与常规 groovy 脚本执行有何不同。

0 投票
1 回答
175 浏览

groovy - 在 groovy 的 repl (groovysh) 中使用 def 的奇怪行为

问题总结

今天早上我正在使用groovysh来测试一个闭包,但是在这样做的过程中我遇到了意外的行为我在groovysh中定义了一个类,然后从该类中实例化了一个对象,如下所示

然后我尝试使用隐式 setter 方法设置 firstName 属性,如下所示:

并收到以下错误

然后我尝试实例化一个新对象而没有def成功执行

不明白为什么会这样,然后我创建了一个可执行的 groovy 文件(如下所示)

然后我执行脚本并收到以下输出

我发现这很奇怪,因为脚本在 groovysh 中引发了异常,但作为独立文件成功执行。

groovy -v的是Groovy Version: 2.6.0-alpha-2 JVM: 1.8.0_111 Vendor: Oracle Corporation OS: Windows 10,我在 Powershell 中以管理员权限 运行groovysh 。

我做了几分钟的研究以更好地理解这种异常,但由于搜索词(groovy、def、groovysh、repl、实例化、异常等)非常常见,我无法找到任何明确解决此行为的内容。

任何解释将不胜感激