XTEND/JAVA自动生成eclipse项目



我在Eclipse中有一个XText项目,实现了我自己的语法文件。使用doGenerate函数,我生成了几个.java文件。到目前为止,一切都像一种魅力。

我的问题是,每次我生成文件时,我都需要做以下操作:

  1. 将生成的文件复制到我的Eclipse项目目录
  2. 在Eclipse中创建一个新的Java项目
  3. 将生成的文件导入项目

我希望每次调用doGenerate函数时都能自动执行这些步骤中的任何一个或全部,那么有没有办法用xtend/java代码来实现这一点?我应该提到的是,我的语法要求用户指定项目目录+名称,这样在运行时就可以从doGenerate函数中获得信息。

代码最好能够检测是否已经存在具有相同名称的项目,并在运行时更新打开的Eclipse实例中的内容(如果可能的话)。

或者,如果用xtend/java无法做到这一点,可以用插件做到吗?

创建新项目必须通过eclipse的资源API完成。如果你可以,在你的代码生成器中有这个依赖项,你可以简单地向org.eclipse.core.resources添加一个依赖项,然后做一些类似的事情

ResourcesPlugin.getWorkspace().getRoot().getProject("myProject").create(null)

如果您不想要这种依赖关系,因为您从其他环境(例如Maven)运行代码生成器,您需要将项目创建抽象到自己的类中,注入它,并为Eclipse和非Eclipse提供单独的实现。

Xtext(IFileSystemAccess)的代码生成器API将在后台使用Eclipse资源API,以确保所有通知等按预期工作,并且不需要手动刷新。因此,这里不需要不同的实现,因为Xtext会处理好这一点。

最新更新