2

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

4

1 回答 1

6

这个问题有几个重要的过程:

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

  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 中)指向该 .jar 文件的CPE_LIBRARY类型的类路径条目来添加引用,但同样您需要以某种方式知道路径。就我而言,我不知道路径,因为我的 .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”文件夹中。要导出插件:选择项目 -> 右键单击​​ -> 导出 -> 插件开发 -> 可部署插件和片段...

于 2012-08-24T18:26:41.090 回答