以编程方式运行EMF代码生成

时间:2009-11-11 12:04:54

标签: eclipse-emf

我创建了一个扩展名为.system的EMF模型,它将为我的工作生成代码。

现在我可以使用Eclipse中的启动代码生成操作生成代码。但我想通过从独立程序启动代码生成来生成代码。

我如何实现这一目标?

详细信息:我已经从EMF模型创建了一个插件,并且已经包含在Eclipse中。

我将从插件中创建.system个文件,我可以从插件中生成代码。

我观察到当我点击启动代码生成时,它会从我的插件启动LauchAction类。

如何从独立的Java程序启动LaunchAction类?

我的目标是运行我创建的.system模型,并从独立的Java程序生成代码。

我如何实现这一目标?

2 个答案:

答案 0 :(得分:3)

您可以从命令行调用Eclipse。类似的东西:

eclipse.exe -noSplash -data ${workspace_location} -model -edit -editor -tests -application org.eclipse.emf.codegen.ecore.Generator ${genmodel}

此命令将以静默方式启动Eclipse,并将生成模式代码(-model),编辑插件(-edit),编辑器插件(-editor)和测试插件-in(-tests)。如果不需要,请省略任何这些参数。

答案 1 :(得分:0)

我不知道如何解决您的问题,但我认为这是可行的。我认为您必须查看EMF源代码以检查代码生成的工作原理。

以下是一些起点:

  • 如果拥有PDE和EMF工具,请使用 Import>插件和片段将EMF插件插入Eclipse工作区。

  • 否则,克隆并导入以下Git存储库:

    https://git.eclipse.org/c/emf/org.eclipse.emf.git/
    
  • 看看以下文件,也许您可​​以在那里找到所需的文件:

    plugins/org.eclipse.emf.codegen.ecore.ui/src/org/eclipse/emf/codegen/ecore/genmodel/handler/GenerateHandler.java
    
  • 否则,请查看org.eclipse.emf.codegen.ecore插件。

祝你好运!这是一个有趣的问题!如果解决了,请在这里报告!

编辑:糟糕,这个问题已有10年历史了,我没有注意到!