XTEND / JAVA自动eclipse项目生成

时间:2015-04-26 13:36:09

标签: java eclipse xtext xtend

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

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

  1. 将生成的文件复制到我的Eclipse项目目录
  2. 在Eclipse中创建一个新的Java项目
  3. 将生成的文件导入项目
  4. 我希望每次调用doGenerate函数时都能自动执行上述任何或所有步骤,那么有没有办法用xtend / java代码?我应该提一下,我的语法要求用户指定项目目录+名称,以便在运行时从doGenerate函数中获取信息。

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

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

1 个答案:

答案 0 :(得分:1)

创建新项目必须通过eclipse的资源API完成。如果你没问题,在你的代码生成器中有这种依赖关系,你可以简单地向org.eclipse.core.resources添加一个依赖项并执行类似

的操作
ResourcesPlugin.getWorkspace().getRoot().getProject("myProject").create(null)

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

Xtext的代码生成器API(IFileSystemAccess)将使用Eclipse资源API,以确保所有通知等按预期工作,您无需手动刷新。所以这里不需要不同的实现,因为Xtext会处理这个问题。