在部署Xtext时,如何通过插件与Eclipse集成?

时间:2012-08-15 11:15:43

标签: eclipse-plugin dsl xtext

我已经完成了我的Xtext和Xtend项目的测试版。现在我想将它与Eclipse集成。使用这个新的Eclipse我希望能够选择“New'mydsl'项目”,然后在这个新项目中我希望默认引用一个.jar。也是mydsl的空文件。如果可能的话,摆脱为项目添加Xtext性质。

1 个答案:

答案 0 :(得分:6)

这个问题有几个非平凡的过程:

  1. 为了能够选择“新建'你的DSL'项目”,你必须实现自己的项目向导。也就是说,在plugin.xml文件中,您必须为扩展点“ org.eclipse.ui.newWizards ”做出贡献,并创建一个必须实现INewWizard接口的类,您可以通过扩展向导类。

  2. 该向导在 performFinish ()任务中,应以编程方式创建 IJavaProject ,您可以在其中指定所需的自然。您还必须指定源文件和输出文件夹,并配置类路径(添加类路径条目)。此链接详细介绍了如何创建项目。 http://www.pushing-pixels.org/2008/11/18/extending-eclipse-creating-a-java-project-without-displaying-a-wizard.html

  3. 在上一步(#2)中,创建自定义项目时,可以添加包,文件夹,文件,以便添加空的.mydsl文件。

  4. 现在最棘手的部分。要默认引用.jar文件,有几种方法。最简单的方法是,如果您事先知道.jar路径,则可以通过添加(在步骤#2中)类型 CPE_LIBRARY 的类路径条目来添加引用,该类路径条目指向该.jar文件,但是您再次需要以某种方式知道路径。在我的情况下,我不知道路径,因为我的.jar文件是一个导出为插件的库,所以我最终实现了一个 IClasspathContainer 来查找我的插件库(.jar文件)在已安装的插件中​​。您可以通过以下方式查找插件:

  5. Bundle bundle = Platform.getBundle("com.my.libraryPlugin");

    File bundleFile = FileLocator.getBundleFile(bundle);

    ...然后,在步骤#2中我添加的是类型 CPE_CONTAINER 的类路径条目:

    JavaCore.newContainerEntry("MY_CONTAINER");
    

    您可以在此处详细了解 IClasspathContainer http://www.ibm.com/developerworks/opensource/tutorials/os-eclipse-classpath/section2.html

    5-您可能已经知道如何做到这一点。最后一步是导出DSL插件并将它们复制到Eclipse安装中的“plugins”文件夹中。要导出插件:选择项目 - >右键单击 - >出口 - >插件开发 - >可部署的插件和片段......

相关问题