对于背景,我正在尝试编写一个DSL解析器,使用这个伟大的
example.不幸的是,当我调整此行以在我自己的应用程序中使用时:
Script dslScript = new groovyshell().parse(dsl.text)
我在运行时遇到类解析错误,因为我的DSL域文件具有引用其他外部类的代码.上下文应用程序可以访问这些类,但我不知道如何将它们访问到新的groovyshell对象,或者以某种方式使用上下文应用程序的运行时环境来解析文件.
解决方法
您是否尝试过使用以下构造函数:public groovyshell(ClassLoader parent)
像这样:脚本dslScript = new groovyshell(this.class.classLoader).parse(dsl.text)
希望有帮助……