如何在Eclipse中更改DSLD编译类路径

时间:2011-12-28 09:23:29

标签: java eclipse groovy dsld

我想在DSLD脚本中导入我自己的类,但是DSLD编译似乎没有使用项目的类路径 - import语句会破坏编译,而Class.forName会抛出class not found异常。 有没有办法将自定义jar放在DSLD类路径上,所以我可以在conribution块中使用自己的类? 我正在使用Eclipse 3.7和最新的groovy插件(2.6.0)

2 个答案:

答案 0 :(得分:1)

您只需传递一个包含完全限定类名的字符串,并且只要它在正在评估DSLD的项目类路径上,那么它就可以工作。这里描述groovy-eclipse DSLDs

  

关于java.lang.Class引用的一些细微之处

     

即使在您的上下文中编辑DSLD脚本也是如此   项目,该脚本实际上是由Groovy-Eclipse加载的。所以,   脚本的运行时类路径对应于Groovy-Eclipse   classpath,而不是项目的类路径。

     

因此,您无法为其中定义的类型引用类对象   你的项目。但是,您可以引用类对象   可用于Groovy-Eclipse。这可能会令人困惑   编译器在您的类型中定义的类型时不会显示编译错误   project被引用为类对象,但它将显示编译   引用Groovy-Eclipse类型时出错。这是因为   Groovy-Eclipse编译器在项目的类路径下工作。它是   尚未意识到DSLD文件将使用不同的类路径运行。

     

更具体地说:

     

您可以直接引用MyLocalType类,而不是直接引用类MyLocalType   引用它作为字符串“com.mycompany.MyLocalType”标准JDK,   GDK以及groovy-all中定义的所有类型都可以直接使用   您的DSLD并将显示编译错误。有可能参考   以org.eclipse.jdt开头的包中的类型。和   org.codehaus.groovy.eclipse。如果所有参考文献都完全合格。   但是,除非你真的知道自己是什么,否则不建议这样做   做。

答案 1 :(得分:0)

我对DSLD的东西知之甚少,但是像Groovy这样的looks可能有它自己的方法。