看起来我在问一个以前已经问过的问题,但是其他论坛帖子中指出的解决方案对我不起作用。
我正在尝试独立运行 Acceleo 项目。
public void registerPackages(ResourceSet resourceSet) {
super.registerPackages(resourceSet);
if(!isInWorkspace(PSMAndroid.PSMAndroidPackage.class)){
System.out.println("uri: "+PSMAndroid.PSMAndroidPackage.eNS_URI);
resourceSet.getPackageRegistry().put(PSMAndroid.PSMAndroidPackage.eNS_URI, PSMAndroid.PSMAndroidPackage.eINSTANCE);
}
}
并且:
public void registerResourceFactories(ResourceSet resourceSet) {
super.registerResourceFactories(resourceSet);
resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("psmandroid",new XMIResourceFactoryImpl());
}
该模块如下所示:
[module componentModule('org.colpaert.mathias.PSMAndroid')]
我收到以下错误:
org.eclipse.acceleo.engine.AcceleoEvaluationException:名为“generateModel”的主模板的第一个参数的类型是代理。
生成器在作为“acceleo 应用程序”启动时工作,没有上面的代码行。当我添加这些行时,作为 java 应用程序运行,我得到了上面的错误。但是,当我再次尝试作为“acceleo 应用程序”运行时,出现以下错误:
所以这不再起作用了。
我应该怎么办?
额外信息:我在我的 acceleo 生成项目的构建路径属性中添加了 ecore 模型(带有模型和 genmodel 等的项目)作为项目参考。