如何在groovy中获得运行脚本的路径?

我正在编写一个groovy脚本,希望通过存储在同一文件夹中的属性文件来控制它。但是,我希望能够从任何地方调用此脚本。当我运行脚本时,它总是根据运行它的位置而不是脚本所在的位置来查找属性文件 如何从脚本中访问脚本文件的路径?您认为新文件(“.”)不起作用是正确的。返回工作目录 获取脚本目录 scriptDir = new File(getClass().protectionDomain.codeSource.location.path).parent 获取脚本文件路径的步骤 scriptFile

如何使用groovy mixin添加静态方法

我想使用groovy的mixin特性将方法作为“类(静态)方法”而不是实例方法导入。当我使用mixin时,即使我的mixin类中有一个静态方法,它也会转换为目标类中的一个实例方法。我希望导入的方法是一个类(静态)方法。有什么好方法可以做到这一点吗 我不知道如何使用mixin将静态方法添加到类中,但是您可以通过metaClass.static属性将静态方法添加到类中。下面是一个添加静态fqn()方法的示例,该方法打印类的完全限定名 Class.metaClass.static.fqn = { de

Groovy Grails中测试/开发模式的自定义初始化

我想根据当前使用的开发或测试模式,在引导类中运行特定的登录 我该怎么做?来自官方文件 import grails.util.Environment class BootStrap { def init = { servletContext -> def currentEnv = Environment.current if (currentEnv == Environment.DEVELOPMENT) { // do

Groovy-将XmlSlurper与动态路径一起使用

是否可以使用任意路径访问Xml节点 例如:给定xml: <records> <bike name='Chopper' /> <car name='HSV Maloo' make='Holden' year='2006'> <country>Australia</country> <record type='speed'>Production Pickup Tru

如何将参数传递给Groovy 2.0脚本?

我有两个脚本,我试图测试通过一个参数,但失败了。我检查了GroovyScriptEngine的文档,但它似乎没有处理我希望传递参数而不是属性-值对(在绑定中)的情况 以下是我得到的错误: C:\AeroFS\Work\Groovy_Scripts>groovy scriptengineexample.groovy hello, world Caught: groovy.lang.MissingPropertyException: No such property: args

Groovy@singleton工作不正常

下面是我试图作为单例执行的代码 MyResourceBundleSingleton.groovy//groovy类 @Singleton class MyResourceBundleSingleton { public ResourceBundle getResourceBundle () { return someService.getMyResourceBundle() // this bundle is returned by calling a separate

Groovy:相同的参数,不同的结果

在下面的代码中,x.test()返回[1,2] 所以y=[1,2] 然而f([1,2])打印1,但是f(y)打印2 如何编写f(y)以便它打印1 相反,f(z)打印1,即使z=y def f = { Object... args -> println args.size(); }; class Test { Object[] test() { return [1,2]; } } def x = new Test(); def y = x.test(); def z = [1,2];

Groovy:@Grab包含与类路径包含有何不同? 1.一般来说,@Grape/@Grab包含与类路径包含有何不同? 2.具体来说,是什么导致了以下行为差异?

我对xpp3有一个要求,我表示为: // TestScript.groovy @Grab(group='xpp3', module='xpp3', version='1.1.3.4.O') import org.xmlpull.v1.XmlPullParserFactory; println "Created: " + XmlPullParserFactory.newInstance() 运行$groovy TestScript.groovy失败 捕获:org.xmlpull.v1.XmlPu

将Jenkins Groovy后期构建步骤添加到所有作业

如何将同一步骤添加到所有作业中?我们有50多个作业,因此很难将指向所需groovy代码的链接复制粘贴到每个作业中。我通常通过更新受影响作业的config.xml来进行类似的大规模更改。每一个好的编辑器都应该有一个对文件有效的搜索和替换功能。使用以下工作流 关闭詹金斯 更新job config.xml文件 启动詹金斯 还有其他可能的工作流,如下所示 1.更新job config.xml文件 2.重新加载配置 但是,对于第二个选项,我不知道在重新加载配置时如果作业正在运行,它会产生什么影响。以下脚本

在IntellJ中使用Jersey和Groovy运行Spring Boot应用程序

我正在使用带有servlet的模板Spring引导应用程序。当我将最新的Jersey(用于jax rs)添加到应用程序中,然后将Groovy框架添加到应用程序中(仅用于测试)时,我开始在IntelliJ中运行应用程序时遇到问题 Groovy类路径上的一些库似乎与来自Jersey的库(ServletAPI和ASM)发生冲突,但我还不能100%确定这就是问题所在。可以肯定的是,IntelliJ构建的类路径与maven的不同 似乎与spring boot maven插件的技巧有关,但这只是一种怀疑。通

groovy脚本中定义的变量总是解析为null

我正在尝试使用system groovy脚本作为构建步骤来操作我们的一个作业中的一些变量,如下所示: //Current Thread run def thr = Thread.currentThread() def current_build = thr?.executable //Get upstream job def parent_build = current_build.getCause(hudson.model.Cause.UpstreamCause).getUpstream

如何在groovy sql中获取行数

我是groovy的新手。想知道如何从下面的sql查询返回的给定sql结果中获取行数。我在谷歌上搜索了很多,但没有找到合适的解决方案 这是我的sql查询类代码 def sql = Sql.newInstance(dataSource); try { data = sql.rows("select field_value,form_table_column_name from form_tbl where form_id=1");

Gradle/Groovy语法和关键字

作为Gradle和Groovy的新手,我发现自己很难理解build.Gradle脚本的语法 我理解(至少我认为是这样)build.gradle是作为DSL使用的普通groovy代码,其中关键字在别处定义 请解释一下不同的部分是什么。摘自教程: defaultTasks 'distribution' task distribution << { println "We build the zip with version=$version" } task release(d

Groovy新文件命令失败

我已经在Groovy和Grails上工作了几个星期,没有任何问题 我刚刚遇到一个问题,任何文件创建命令,如 def file = new File("test.txt") 只是在运行时失败 Class groovy.lang.GroovyRuntimeException Message:Could not find matching constructor for: bcp.File(java.lang.String) 感谢您的帮助。试试看 def file = new java.io.Fi

如何在Groovy列表中查找格式的字符串元素

我有一个如下的groovy列表 def permissions = [ TESTENTITY.ADMINISTER, TESTENTITY.CREATE, TESTENTITY.DELETE, TESTENTITY.READ, TESTENTITY.UPDATE, TESTBEAN.ADMINISTER, TESTBEAN.CREATE, TESTBEAN.DELETE, TESTBEAN.READ, TESTBEA

Groovy 修改zipfile条目的文件内容

我想更新zipfile中文本文件的内容 我无法找到如何做到这一点,下面的代码工作不正常 谢谢你的帮助 import java.util.zip.ZipFile import java.util.zip.ZipEntry import java.util.zip.ZipOutputStream String zipFileFullPath = "C:/path/to/myzipfile/test.zip" ZipFile zipFile = new ZipFile(zipFileFullPat

Groovy 弹性搜索的舍入问题

我正在尝试将Elasticsearch聚合中的小数点四舍五入到2位,但我无法做到这一点……我正在使用Groovy作为我的脚本引擎 ... "aggs": { "avg_response_time": { "avg": { "field": "exec_time", "script": "_value.round(2)" } }, ... 有什么帮助吗?那么确切的问题是什么?错

如何在groovy中对变量求反

我试图使用groovy脚本否定一个变量,但使用(!)它似乎不起作用,这些变量是从运行groovy构建流的jenkins控件传递的: def P = "arg" def resolver = build.buildVariableResolver def V = resolver.resolve(P) print "V is " + V print "negated V is " + !V 在两张照片中,我得到了相同的值 使用Java的Boolean.valueOf()或Groovy的Str

Groovy 我得到了一个“答案”;无法对空对象调用方法getProjectByName();当我在soapUI中使用LAUNCH RUNNER运行项目时

我有一个控制器,它将excel中的测试数据传递到另一个名为SERVICE_APP project的项目的属性中 当我使用testcase SoapUI运行控制器时,它运行正常。但当我从Project launch/Testsuite launch使用命令行/soapUI运行时,我得到了错误“getProjectByName()on null对象” 16:20:53,896 ERROR [SoapUI] An error occurred [Cannot invoke method getProj

Groovy:for..的速度明显快于.each?

我很好奇,出于性能原因,for..in是否应该优先于。每个。for。。in是标准语言流控件的一部分 相反,每个调用一个闭包,因此会产生额外的开销 .each{…}相当于方法调用。each({…}) 此外,由于它是一个闭包,在每个代码块内,您不能使用break和continue语句来控制循环 更新的基准Java 1.8.0_45 Groovy 2.4.3: 每个{}3327981 对于(){ 下面是另一个迭代次数为100000次的基准测试: lines = (1..100000) // wi

Groovy gradle任务语法的基本查询

我是一名Java开发人员,刚刚加入一个已经使用Gradle的项目。在build.gradle文件中,我有如下语句 springBoot { backupSource = false } checkstyle { configProperties = [basedir: projectDir] } task bowerInstall(type: Exec, dependsOn: npmInstall) { commandLine 'node', 'node_modules/bowe

Groovy函数没有括号和以大写字母开头的参数,导致错误

我有一个类,它包含一个成分列表,并提供一个函数服务,现在可以打印这些成分 class CookDSL { List<String> ingredientsToCook CookDSL(List<String> ingredients){ ingredientsToCook=ingredients } void SERVE(Closure closure){closure(ingredientsToCook)} } 输出: [X, Y, Z]

如何使用groovy访问Jenkins中的用户API令牌?

我需要使用groovy访问Jenkins中的用户详细信息。我就是这样做的 cause = build.getCause(hudson.model.Cause.UserIdCause.class); username = cause.getUserName() User id = User.get(cause.getUserId()) println("user id :: "+ cause.getUserId()) println("user name :: "+ username) pri

groovy中map自定义比较器的创建

我在groovy上过课 class WhsDBFile { String name String path String svnUrl String lastRevision String lastMessage String lastAuthor } 和映射对象 def installFiles = [:] 这个循环由 WhsDBFile dbFile = new WhsDBFile() installFiles[svnDiffStatus.

如何使用Groovy脚本设置密钥库

我需要设置证书的相关链接。但在WS-Security配置-密钥库中,我只能设置绝对路径。如何使用脚本来实现这一点 import com.eviware.soapui.settings.SSLSettings import com.eviware.soapui.SoapUI // set SoapUI.settings.setString( SSLSettings.KEYSTORE, pathToKeystore ) SoapUI.settings.setString( SSLSettings

groovy中运行时混合的目的是什么

groovy中的运行时混合的目的是什么 混合是向类添加功能性而不存在多重继承问题的一种方法。但它在Groovy中的用途是什么?特质也可以做到这一点 注释@Mixin被认为是不推荐使用的。运行时mixin有一天会有同样的命运吗?运行时mixin使我们能够在运行时向现有类添加方法。答案的重要部分是“存在”和“运行时” 因此,您可以在运行时轻松地将新方法添加到任何第三方库。运行时混合使我们能够在运行时将方法添加到现有类中。答案的重要部分是“存在”和“运行时” 因此,您可以在运行时轻松地向任何第三方库添

Groovy 将新的键值对添加到arraylist

我有两个数组列表。一个是[[Account:value,Budget:value]],另一个是[[Account:value,cYBudget:value]]我想以以下格式的列表结束:[[Account:value,Budget:value,cYBudget:value]] 数据的一个例子是: budProp=[[ACCTCODE:6201,预算:2500],[ACCTCODE:7999,预算:1500]] budCyExp=[[ACCTCODE:6201,cYBudget:1000],[ACC

Groovy 为什么';调用log.info是否生成输出?

请看这段代码: import java.util.logging.Logger class Base { Logger log = new Logger(Base.getClass().name); static main(args) { def b = new Base(); b.log.info('hello'); } } 当我编译它时,我没有看到任何错误或警告。 但当我尝试执行它时,我看到了空输出。 为什么?不要实例化新的记录器,请使用Logger.g

Groovy方法调用中括号的使用

我开始学习Groovy,并了解到括号在方法调用中是可选的,所以 def list = [0, 1, 2, 3] list.each ({ item -> println "Item: $item" }) 与 def list = [0, 1, 2, 3] list.each { item -> println "Item: $item" } 但是现在发现了这个例子 def list = [0, 1, 2, 3]

Groovy中的groupby

我有一个对象列表如下 [["GX 470","Model"],["Lexus","Make"],["Jeep","Make"],["Red","Color"],["blue","Color"]] 我想把它转换成 {"Model":["GX 470"],"Make":["Lexus","Jeep"],"Color":["Red", "blue"]} 我试过了 list.groupBy{ it[1] } 但这会让我回心转意 {"Model":[["GX 470","Model"]],"Make

Groovy是否有一个简短的if表单来调用方法而不返回值?(非三元)

我只想在满足条件时调用一个方法,在Python中,我将执行以下操作: print_static_content() if condition 这可以通过groovy实现吗 脚注:我知道Groovy有一个三元运算符,但它会返回一个值。如果(条件)打印静态内容()正是我需要的,我正在尝试:消息?System.err.println(消息)@如果您不想将其作为答案添加,我会将您的解决方案标记为正确的解决方案。如果您觉得奇怪,也可以执行条件和打印\u static\u content()@JBNize

Groovy将构造函数键映射到不同的变量名

我看起来像: { "days": [ { "mintemp": "21.8" } ] } 使用Groovy,我将其解析为: class WeatherRow { String mintemp } def file = new File("data.json") def slurper = new JsonSlurper().parse(file) def days = slurper.days def first

将Groovy代理(作为强制)委托给字符串()

我有一个接口和一个类,它实现接口的方法,但不使用implements关键字来实现。因此,我在类的实例上使用作为-强制。到目前为止,这已按预期工作,但对于toString(),它不是在代理上而不是在活动实例上调用的 考虑以下示例: class CoercionToString { public static main(String[] args) { A a = new A(); a.foo(); println a; B

将强制和任意可选构造函数参数与Groovy相结合

纯粹出于兴趣,我试图确定是否可以通过使用命名和默认构造函数参数来完全消除在Groovy中使用构建器模式的需要;也就是说,只使用内置的语言特性来解决伸缩构造函数的问题 例如,在Kotlin中,可以执行以下操作: data class Thing(val mandatory1: Int, val mandatory2: Int, val optional1: Int = 100, val optional2: Int =

groovy获取父脚本的名称

我们有以下情况: 我们有两个groovy脚本,script1.groovy和script2.groovy, script1.groovy正在执行script2.groovy 有什么方法可以在script2.groovy中调用,以找出谁的脚本称为script2.groovy?您可以提供更多信息,例如,如何从script1.groovy文件?@Library(“某个库名称”)加载script2.groovy,其中包含script2.groovy和其他脚本。在script1.groovy中,我们有一些

使用Groovy在当前时间上增加1小时

我试图在当前时间上只增加小时。 例如:用户当前时间为2017/08/28 17:27:23 我想要的结果是2017年8月28日星期一18:00:00——这意味着它只会增加小时数,而休息分和秒数应该为零 def d = (new Date()).format('yyyy/MM/dd HH:mm:ss') log.info d use(groovy.time.TimeCategory) { //Add increment hour by 1 def incre = new Date(

Groovy类型强制转换和委托

当我有一个简单的类层次结构时,我正确地得到了一个异常: groovy:000> class Parent {} ===> true groovy:000> class Child1 extends Parent {} ===> true groovy:000> class Child2 extends Parent {} ===> true groovy:000> Child1 c = new Child2() ERROR org.codehaus.gr

Groovy类扩展父实现接口,父实现接口中的方法,overide错误

使用简化的代码更容易解释。我有以下接口 interface FooInterface{ public void foo() } 我从一个库中获得了以下JAVA父类(注意最后一个关键字): 最后,儿童班: class Child extends Parent implement FooInterface{ } 这导致编译错误,我无法重写子类中的最终父方法,从技术上讲,我不是。我觉得这是一种我不熟悉的传统主义。因此,我的问题是: 为什么编译器认为我在重写 我怎样才能编译这个 无法复制 最后方法:

Groovy中未调用Vert.x Future/Promise处理程序

我得到了一个相当小的Verticle,它应该连接到数据库,定期轮询一个表,并将对象发送到事件总线。到目前为止,我可以连接到数据库,但之后处理程序没有执行,轮询计时器也没有启动。我想这是显而易见的,感谢你的帮助 我使用Vert.x3.8承诺(就像链接后面的示例一样)。正如您在我的代码中所看到的,使用不推荐的期货效果很好!但是谁想使用不推荐的代码呢?要么我做错了什么,要么那是Vert.x中的一个bug,我不这么认为 我的x顶点是3.8.1 class JdbcVerticle extends Abs

固定小数位数/JavaGroovy

如何在Groovy中设置数值的固定小数位数? 显然,对于4位小数以上的数字来说这很容易,但是这一位呢? 例如: def num = 2.58 return 2.5800 我想避免把这些变成弦 感谢您的帮助,谢谢在java/groovy中处理十进制格式的正常方法是java类。以下代码: import java.text.DecimalFormat def num = 2.58 def df = new DecimalFormat("#0.0000") def formatted = df

SoapUI Groovy脚本未在Testcase中运行

我正在尝试在soapUI测试用例中运行Groovy脚本 脚本除了获取响应、提取一个值并在下一个请求中使用它之外什么都不做。当我独立运行脚本时,提取工作正常。但是,当我尝试运行我的测试用例时,我得到了以下错误: 错误: java.lang.ClassCastException:java.lang.String不能强制转换为org.apache.log4j.Logger 在com.eviware.soapui.impl.wsdl.teststeps.WsdlGroovyScriptTestStep.

Groovy脚本中的依赖冲突

您好,我创建了一个groovy脚本,并使用Grab下载了一些依赖项。 在编译时,我抛出了以下异常 Caught: java.lang.LinkageError: loader constraint violation in interface itable initialization: when resolving method "org.apache.xerces.dom.NodeImpl.getChildNodes()Lorg/w3c/dom/NodeList;" the class lo

Groovy 如何从数组中删除空元素

我试图从数组中删除空元素,即双引号,但我不确定如何遍历json数组。下面是我的json { "body": { "newId":"value1" }, "header": { "appId": "someVal", "pricingSchedule": [ "price1", "price2", "price3", "", "", "" ] }, "trail": {

如何使用groovy运行外部.exe应用程序

我是groovy的新手。我需要使用groovy运行一个外部exe应用程序。我有下面的代码 def cmd = ['cmd', '/c', "c:\htmlimageconverter.exe"]; def sout = new StringBuilder(); def serr = new StringBuilder(); def proc = new ProcessBuilder(cmd); Process process = proc.start(); process.consumeProc

Groovy 通过内联脚本在控制台上打印Camunda

我安装了camunda bpm引擎,我正在尝试做一个简单的测试来了解内联脚本是如何工作的。我有以下程序 但是,我运行camunda bpm平台的控制台没有显示任何内容。有人知道怎么做吗 提前感谢添加scriptFormat=“groovy”,让camunda知道如何处理脚本。您可以通过在modeler表单字段中键入groovy来实现这一点 请参阅。添加scriptFormat=“groovy”,让camunda知道如何处理脚本。您可以通过在modeler表单字段中键入groovy来实现这一点

关于省略'的不一致性;返回';在Groovy中返回闭包块的关键字

我刚刚开始学习Groovy。然后我进入了这个: 因此,在方法定义的末尾可以省略“return”。好吧 尽管我更愿意亲自使用它,但我还是想看一看。 我测试了一些简单的案例以了解其工作原理: e、 g.demo.groovy: def a1 = { return { return 'hi'} }() println a1 def a2 = { return {'hi'} }() println a2 def a3 = { {'hi'} }() println a3 def a4 = { {-&

  1    2   3   4   5   6  ... 下一页 最后一页 共 76 页