在Acceleo中使用UML2 4.0.0元模型遇包未找到错误求助
解决Acceleo中UML2 4.0.0元模型找不到的问题
你遇到的错误PackageNotFoundException是因为Acceleo无法在EMF注册表中找到UML2 4.0.0的元模型定义,以下是具体解决步骤:
1. 确保完整安装UML2 4.0.0开发插件
UML2的运行时插件不足以支持Acceleo开发,需要安装包含开发资源的完整包:
- 打开Eclipse,进入
Help > Install New Software - 添加Luna版本的更新站点(UML2 4.0对应Eclipse Luna):
http://download.eclipse.org/releases/luna - 在搜索框输入
UML2 SDK,勾选完整的UML2 SDK包(包含org.eclipse.uml2.uml.edit等开发必需插件),完成安装后重启Eclipse - 可通过
Help > About Eclipse > Installation Details确认已安装org.eclipse.uml2.uml、org.eclipse.uml2.uml.edit、org.eclipse.uml2.common.edit这些插件
2. 配置Acceleo项目的插件依赖
- 右键你的Acceleo项目,选择
Properties > Plug-in Development > Dependencies - 在Required Plug-ins区域,点击
Add,搜索并添加以下插件:org.eclipse.uml2.umlorg.eclipse.uml2.uml.editorg.eclipse.emf.ecore.xmi
- 勾选每个插件的Reexport选项,确保Acceleo能访问到这些插件中的元模型定义
3. 手动注册UML2元模型(可选,若自动注册失效)
如果上述步骤后仍报错,可以在Acceleo的启动代码中手动将UML2元模型注册到EMF注册表:
import org.eclipse.uml2.uml.UMLPackage; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.resource.ResourceSet; // 全局注册(适用于所有ResourceSet) EPackage.Registry.INSTANCE.put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE); // 或针对当前使用的ResourceSet注册 resourceSet.getPackageRegistry().put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE);
4. 验证模型文件的命名空间URI
检查你的.uml模型文件,确保根元素的命名空间URI是http://www.eclipse.org/uml2/4.0.0/UML,避免版本号或域名拼写错误。
关于Acceleo Extender SDK的说明
UML2 4.0对应的Acceleo Extender SDK需安装Luna版本的(Acceleo 3.6),同样从Luna更新站点搜索Acceleo Extender SDK安装即可,无需单独找对应版本的Developer Resources插件。
内容的提问来源于stack exchange,提问作者Kaly
相关产品推荐
相关产品推荐

