我想做一些我自己的类的导入,以便在DSLD脚本中使用,但是DSLD编译似乎没有使用项目的类路径-导入语句中断了编译,并且Class.forName抛出了类未找到异常。有没有办法将自定义jars放在DSLD类路径上,这样我就可以在分发块中使用我自己的类?我使用的是Eclipse3.7和最新的groovy插件(2.6.0)
发布于 2013-09-06 12:38:34
您只需传递一个带有完全限定类名的字符串,并且只要它位于DSLD被评估的项目类路径上,它就可以工作。这是在这里描述的groovy-eclipse DSLDs
关于java.lang.Class引用的一些微妙之处
尽管DSLD脚本是在项目上下文中编辑的,但该脚本实际上是由Groovy-Eclipse加载的。因此,脚本的运行时类路径对应于Groovy-Eclipse的类路径,而不是项目的类路径。
因此,不能为项目中定义的类型引用类对象。但是,您可以引用Groovy-Eclipse可用的类对象。这可能会让人感到困惑,因为当项目中定义的类型被引用为类对象时,编译器不会显示编译错误,但当引用Groovy-Eclipse类型时,编译器会显示编译错误。这是因为Groovy-Eclipse编译器在项目的类路径之外工作。它还不知道DSLD文件将使用不同的类路径运行。
更确切地说:
您可以将其作为字符串"com.mycompany.MyLocalType“标准JDK、GDK和groovy中定义的所有类型引用,而不是直接引用类groovy-所有这些类型都可以直接在DSLD中使用,并将显示编译错误。可以在以org.eclipse.jdt开头的包中引用类型。和org.codehaus.groovy.eclipse。如果所有引用都是完全限定的。但是,除非您真的知道自己在做什么,否则不建议这样做。
发布于 2011-12-28 20:58:06
我对DSLD的东西了解不多,但是它像Groovy一样looks可能有它自己的方法去做。
https://stackoverflow.com/questions/8654007
复制相似问题