我正在Activiti中加载一个具有以下结构的Groovy项目:
└───src
└───main
└───groovy
├───classes
│ Foo.groovy
│
└───scripts
script.groovy
剧本groovy公司
package scripts
import classes.Foo
傅。groovy公司
package classes
class Foo {
Foo(){
}
}
我的问题是我的脚本的导入语句:导入类。Foo
没有被Activiti解决。
我正在Springhtml" target="_blank">容器中使用org运行Activiti。activiti:activiti spring:5.21.0。我的脚本使用org中的groovy脚本引擎进行评估。activiti引擎:5.21.0。
如何让Activiti知道我的Foo。groovy类?
我一直在寻找一种指定类路径的方法,但到目前为止运气不好。
我试图从文件中手动解析导入语句并对其进行评估,但我对该解决方案不满意。
我看到Activiti使用脚本引擎GroovyScriptEngineImpl来评估我的脚本。
我使用GroovyClassLoader#parseClass()方法实现了这一点。
final GroovyScriptEngineImpl engine = (GroovyScriptEngineImpl) this.scriptingEngines.getEngineByName("groovy");
GroovyClassLoader classLoader = engine.getClassLoader();
Files.walk(...)
.filter(Files::isRegularFile)
.forEach(path -> {
classLoader.parseClass(new GroovyCodeSource(path.toUri()));
});
engine.setClassLoader(classLoader);
目前,我有一个“包罗万象”的jenkinsfile,其中包含各种函数。为了在其他jenkinsfile中重用这些函数,我想将它们放在单独的groovy脚本中,并从jenkinsfile中加载它们。 scmHandler。groovy: 在jenkinsfile中,我执行以下操作: <代码>。。。def scmHandler=负载(“测试/scmHandler.groovy”)scmHandler。
我正在服务器上安装janusgraph和cassandra。我得到了下面提到的错误。另外,在服务器上部署配置文件时,要在配置文件中进行哪些更改。 Linux 服务器与 JanusGraph 0.4.0, 卡桑德拉 3.11.0 ==
我对Groovy很陌生,我想从主groovy脚本中的另一个groovy脚本中导入一个类。我已经看到了这篇文章。但是由于环境限制,我不能使用GroovyClassLoader之类的函数或导入任何库/框架。我唯一的可能性是使用评估方法。 我试过这个: 主脚本(评估不会抛出任何错误) Csvreader脚本 但是,我需要通过evaluate调用传递参数(并将方法移到类之外),或者需要创建类的实例。不幸的
我使用groovy脚本中的方法创建了一个自定义dsl命令链。我从另一个groovy文件访问此命令链时遇到问题。是否有实现功能的方法? 我尝试过使用“evaluate”,它可以加载groovy文件,但无法执行命令链。我尝试过使用GroovyShell类,但无法调用这些方法。 我这里有一个小房间。groovy中执行“please show the cube\u root of 1000”会产生10的结
我想将一些常见的阶段移动到groovy文件中,以便其他Jenkinsfile可以使用这些阶段而不必复制它们。 我遇到了一些管道很好地加载groovy文件的问题,但当它使用groovy文件中的函数时,会弹出异常。 这是示例代码,我在jenkins配置中使用管道脚本,而不是在SCM的Jenkinsfile中使用。 和groovy文件。
我有一些库脚本:lib1。groovy: lib2.groovy: lib3.groovy: 并希望在另一个脚本中使用它们:conf.groovy: conf.groovy是由用户配置的,他不知道我的后台lib脚本!他只知道提供的方法/任务:a()、b()、c()。实际上,我创建lib脚本是为了简化用户。 有没有办法将lib目录中的所有脚本(脚本lib1、lib2m、lib3)都包含到conf.g