![](/img/trans.png)
[英]How to force Groovy Script Engine to output compiled classes in files?
[英]How to load Groovy classes into the Groovy script engine of Activiti?
我在Activiti中加載具有以下結構的Groovy項目:
└───src
└───main
└───groovy
├───classes
│ Foo.groovy
│
└───scripts
script.groovy
script.groovy
package scripts
import classes.Foo
Foo.groovy
package classes
class Foo {
Foo(){
}
}
我的問題是我的腳本的import語句: import classes.Foo
未被Activiti解決。
我正在使用org.activiti:activiti-spring:5.21.0
在Spring容器中運行Activiti。 我的腳本是使用org.activiti-engine:5.21.0
的groovy腳本引擎評估的。
如何讓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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.