我从两个相关的元模型开始生成代码。主要的引用了第二个的类。Acceleo 执行在作为 Acceleo 插件执行时运行良好,但在作为 Java 应用程序执行时不适用。如果我启动 Java 主类,则第二个相关元模型的数据不可见。
我得到的错误是
org.eclipse.acceleo.engine.AcceleoEvaluationException: Unresolved compilation error in generation module
我向您展示了调试模式的片段。target是对第二个元模型(名为 peersbehavior)的类的引用。
---- URI 是正确的,它指向确切的位置----
----但是没有检索到值----
我在 ATL Model2Model 转换中遇到了类似的问题:必须选中“允许模型间引用”选项。但在 Acceleo 我找不到类似的东西
[编辑] 正如独立文档所指出的,
我在 Java 类中添加了这两行代码
public void registerResourceFactories(ResourceSet resourceSet)
{
super.registerResourceFactories(resourceSet);
// code added by me
resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("systembehavior", new XMIResourceFactoryImpl());
resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("peerbehavior", new XMIResourceFactoryImpl());
}
现在它也可以启动Java类,但是如果我将项目导出为Jar,并尝试在另一个项目中使用它,我会遇到和以前一样的问题