草庐IT

groovy-spread

全部标签

java - 如何通过 Groovy 获取文件 build.gradle 的完整路径?

我需要在buiid.gradle文件附近的java项目中创建文件。我必须在build.gradle-file中创建任务(Groovy任务),我的任务必须在我的项目中的buiid.gradle附近创建文件,但我不知道-如何获取buiid.gradle-file的路径,即放入我的项目。Groovy如何获取文件buiid.gradle的完整路径?请帮助我。 最佳答案 有几种方法可以实现这一点。如果您查看WorkingWithFiles页面,您可以简单地使用作为Project对象一部分的file()方法。如果您查看ProjectDSLDoc

java - Groovy SSL 签名验证 : signature length not correct?

我正在尝试使用提供的公钥和签名来验证用私钥签名的消息。像charm一样工作的命令行是catcall.blah|openssldgst-sha256-verifypublic-key.pem-signaturesignature.sigVerifiedOK已使用命令从X509证书创建public-key.pemopensslx509-pubkey-noout-inx509key.cer>public-key.pem现在我试图在groovy中模仿它,这是我的代码staticvoidmain(String[]args){/*VerifyaDSAsignature*/if(args.lengt

java - 奇怪的 Groovy/Java 字符串比较行为

考虑以下脚本:defa=newHashSet()defstr1="str1"defstr2="str2"defb="$str1-$str2"defc="str1-str2"println"b:$b"println"c:$c"println"b.equals(c):"+(b.equals(c))println"b==c:"+(b==c)println"b.compareTo(c):"+(b.compareTo(c))a.add(b)println"a.contains(c):"+a.contains(c)当使用Groovy1.8和JDK1.6.0_14运行时有以下输出:b:str1-st

java - Eclipse 中的 Groovy 无法识别导入

我试图在Eclipse中运行Groovy脚本,但Eclipse似乎忽略了我的所有导入语句。如果我将鼠标悬停在错误上,它会提示我导入适当的类(点击它什么都不做)。我的构建路径和类路径中有所需的jar。示例代码,非常标准:packagescripts.blahimportfoo.Bar;classFooMain{staticmain(String[]args){Barbar=newBar();}}Groovy:无法解析类Bar如有任何帮助,我们将不胜感激。 最佳答案 三种可能性:脚本不在源文件夹中所引用的脚本不在源文件夹中。一个或两个脚

java - Groovy ScriptingEngine 线程安全吗?

当你打电话时:ObjectisThreadSafe=scriptEngine.getFactory().getParameter("THREADING");它按照以下方式返回MULTITHREADED:https://docs.oracle.com/javase/8/docs/api/javax/script/ScriptEngineFactory.html#getParameter-java.lang.String-但目前还不清楚这到底有什么影响。这是否意味着:我可以调用scriptEngine.eval(script,bindings);来自不同线程并且提供的绑定(bind)不共享

java - 如何将闭包从 groovy 导入到 java?

我正在尝试从groovy脚本中提取闭包。我将闭包定义为defprintMe={str->printlnstr}在我的groovy文件中,然后尝试通过从绑定(bind)中获取它来使用它,如下所示:GroovyScriptEnginegse=newGroovyScriptEngine(newString[]{"scripts"});Bindingbinding=newBinding();gse.run("test.groovy",binding);Closurecls=(Closure)binding.getVariable("printMe");cls.call("foo");但是当我运

java - Groovy 闭包可以扩展抽象类吗

我有一个抽象Java类,需要实现一个方法onMessage。我知道闭包可以使用as关键字轻松实现Java接口(interface),但它如何扩展抽象Java类?如果它不能扩展它,那么在Groovy中这种情况下最好的解决方法是什么?这是我在Java中的用法,我正在寻找可以在Groovy中完成的类似的东西。MessageCallbackcallback=newMessageCallback(){@OverridepublicvoidonMessage(Messagemessage){dosomething();}};消息回调是我想在Groovy中以类似方式使用的抽象类。

java - Groovy 等价于 java 的没有访问修饰符的声明

所以,我可以在Groovy中声明一个类://groovy-codeclassPerson{}这相当于用java编写如下内容://java-codepublicclassPerson{}只是出于好奇..什么是groovy等同于用java编码的://java-codeclassPerson{}我的意思是,有没有一种方法可以通过在没有访问修饰符的情况下声明某些内容来实现我在Java中可以实现的相同目标? 最佳答案 由于Java中类的默认访问修饰符是“package-private”,我认为在Groovy中最接近相同行为的是使类成为“pac

java - 关于空间/时间的 Groovy 集合性能注意事项

与普通Javafor循环相比,Groovys集合方法(关于空间(!)和时间)的性能如何?例如对于这个用例:sum()与带变量的for循环each()与带变量的for循环inject()与带变量的for循环collect()与带有临时集合的for循环findAll()与带有临时集合的for循环find()与带变量的for循环因此,考虑到这些结果,是否建议在关键环境(例如Grails-WebApp)中使用for循环而不是Groovy集合方法?是否有关于Groovy/Grails性能(优化)的资源?使用这个GBench测试,我得到了以下CPU时间结果:usersystemcpurealfor

java - 我如何检查字符串是否是 Groovy 中的 IP?

来自给定的字符串:StringsomeIp=//someString我如何检查someIp是否是有效的Ip格式? 最佳答案 您可以使用InetAddressValidator检查和验证字符串是否为有效ip的类。importorg.codehaus.groovy.grails.validation.routines.InetAddressValidator...StringsomeIp=//someStringif(InetAddressValidator.getInstance().isValidInet4Address(someI