要使用groovy脚本
第一步:添加pom文件的依赖
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.4.9</version>
</dependency>
接下来就可以写脚本,执行脚本,调脚本,为所欲为
1.写脚本
脚本的内容参照这个脚本的格式来写
在最开始编写脚本的时候参数都用明文来写,方便直接测试脚本
2.测试执行脚本
首先新增一个groovy
选择脚本存在的路径,确定
然后就可以在脚本中打上断点,使用debug来调试脚本
3.java调用脚本
调用脚本之前,把之前写死的数据都改成这种样式,‘$’符号后面的值是调用脚本传入的map的key的值,如:
String temp = "$temp";
相关包
import javax.script.Bindings;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
调用脚本的代码:
第一种
直接传入script代码执行,从上往下依次执行
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("groovy");
Bindings bindings = engine.createBindings();
bindings.putAll(params);
Object resultMap = engine.eval(script, bindings);
params:表示的是传入脚本的map数据
script:表示的是脚本的代码
第二种
传入script文件所在位置url,并且设置方法名,从方法名开始执行
GroovyClassLoader classLoader = new GroovyClassLoader(Thread.currentThread().getContextClassLoader());
File sourceFile = new File(fileUrl);
Class groovyClass = classLoader.parseClass(new GroovyCodeSource(sourceFile));
GroovyObject instance = (GroovyObject)groovyClass.newInstance();
Map<String, Object> result = (Map<String, Object>)instance.invokeMethod("invokeTest", param);
fileUrl:表示脚本文件的地址
invokeTest:表示从这个方法开始执行