我的dsl的生成文件由项目中的所有资源组成。我使该生成器正在加载所有资源并且文件成功。
该操作的速度很好,尽管有些时候它完全没有。 当触发完全构建或恢复时,XtextBuilder会迭代所有资源并为每个资源运行生成器。在我的dsl中,这会导致生成完全相同的文件300次(这就是我有多少资源)。
如何禁用这些类型的文件生成?
答案 0 :(得分:1)
你应该以不同的方式解决这个问题一个选项可以是注册自定义MediaPlayer mediaPlayer = new MediaPlayer();
AssetFileDescriptor afd = context.getResources().openRawResourceFd(R.raw.your_file));
mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
afd.close();
mediaPlayer.prepare();
mediaPlayer.start();
并将完整的生成逻辑放在那里。 (或者查看默认的impl org.eclipse.xtext.builder.IXtextBuilderParticipant
)
org.eclipse.xtext.builder.BuilderParticipant
在您的逻辑中,您只能将生成器调用为第一个增量,而不是所有已更改的文件