我是否可以某种方式为生成的 EMF模型和相应生成的 EMF编辑代码使用相同的Eclipse插件项目?< / p>
通常这两个组件位于两个不同的项目中,EMF编辑一个名称后缀为.edit
的项目。我发现这是多余的,因为编辑项目中的代码很少,而且它与模型代码密切相关。
我已尝试将modelDirectory
和editDirectory
Gen Model属性设置为同一项目中的(不同)目录,但这似乎会导致无休止的混淆和构建问题。我想也许两代步骤会覆盖彼此的项目设置文件。
答案 0 :(得分:1)
经过一些实验后,似乎可以在同一个项目中使用EMF和EMF Edit生成代码。
我必须做的工作如下:
modelDirectory
和editDirectory
设置为相同的目录。否则我得到一个构建错误,说“类型......已经在...中定义了<。em>。bundleManifest="false"
。否则,插件ID将被生成过程覆盖。除此之外,我还设置了updateClasspath="false"
以避免生成过程混乱。
清单和plugin.xml
文件的自动更新似乎如下:
plugin.xml
2和3。这将涉及向plugin.xml
添加类似于以下内容的条目:
<extension point="org.eclipse.emf.ecore.generated_package">
<!-- @generated model -->
<package
uri="somePackage"
class="somePackage.SomePackage"
genModel="model/model.xcore"/>
</extension>
<extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
<!-- @generated model -->
<factory
uri="somePackage"
class="somePackage.someClass"
supportedTypes=
"org.eclipse.emf.edit.provider.IEditingDomainItemProvider
org.eclipse.emf.edit.provider.IStructuredItemContentProvider
org.eclipse.emf.edit.provider.ITreeItemContentProvider
org.eclipse.emf.edit.provider.IItemLabelProvider
org.eclipse.emf.edit.provider.IItemPropertySource"/>
</extension>