Xtext 项目 ecore 文件超过 50kb。工作流生成始终运行良好。但是当我启动编辑器时它崩溃了。
如果我注释掉一些语法规则,将 ecore 文件大小减小到 50kb 以下,效果很好。但是一旦超过限制,就会出现以下异常:
!MESSAGE com.sample.mydsl.ui.internal.MyDslActivator - Failed to create injector for com.sample.mydsl.MyDsl
...
Caused by: java.lang.RuntimeException: Missing serialized package: myDsl.ecore
at com.sample.mydsl.myDsl.impl.MyDslPackageImpl.loadPackage(MyDslPackageImpl.java:5897)
at com.sample.mydsl.myDsl.impl.MyDslPackageImpl.init(MyDslPackageImpl.java:1084)
at com.sample.mydsl.myDsl.MyDslPackage.<clinit>(MyDslPackage.java:58)
我很确定这不是规则逻辑本身,因为我还测试了将语法限制为运行条件。然后通过模拟规则对其进行扩展以增加文件大小。反正它崩溃了...
我想问题比异常消息显示的更深。
我的工作流程配置如下:
fragment = parser.antlr.XtextAntlrGeneratorFragment auto-inject {
options = {
classSplitting=true
fieldsPerClass = "500"
methodsPerClass = "500"
}
}
same settings for XtextAntlrUiGeneratorFragment
有没有人已经收集了解决这些问题的经验?我将非常感谢一些建议。