我已经完成了我的Xtext和Xtend项目的测试版。现在我想将它与Eclipse集成。使用这个新的Eclipse我希望能够选择“New'mydsl'项目”,然后在这个新项目中我希望默认引用一个.jar。也是mydsl的空文件。如果可能的话,摆脱为项目添加Xtext性质。
答案 0 :(得分:6)
这个问题有几个非平凡的过程:
为了能够选择“新建'你的DSL'项目”,你必须实现自己的项目向导。也就是说,在plugin.xml文件中,您必须为扩展点“ org.eclipse.ui.newWizards ”做出贡献,并创建一个必须实现INewWizard接口的类,您可以通过扩展向导类。
该向导在 performFinish ()任务中,应以编程方式创建 IJavaProject ,您可以在其中指定所需的自然。您还必须指定源文件和输出文件夹,并配置类路径(添加类路径条目)。此链接详细介绍了如何创建项目。 http://www.pushing-pixels.org/2008/11/18/extending-eclipse-creating-a-java-project-without-displaying-a-wizard.html
在上一步(#2)中,创建自定义项目时,可以添加包,文件夹,文件,以便添加空的.mydsl文件。
现在最棘手的部分。要默认引用.jar文件,有几种方法。最简单的方法是,如果您事先知道.jar路径,则可以通过添加(在步骤#2中)类型 CPE_LIBRARY 的类路径条目来添加引用,该类路径条目指向该.jar文件,但是您再次需要以某种方式知道路径。在我的情况下,我不知道路径,因为我的.jar文件是一个导出为插件的库,所以我最终实现了一个 IClasspathContainer 来查找我的插件库(.jar文件)在已安装的插件中。您可以通过以下方式查找插件:
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”文件夹中。要导出插件:选择项目 - >右键单击 - >出口 - >插件开发 - >可部署的插件和片段......