如何在Xtext中禁用MWE2自动生成DslValidator类
禁用MWE2自动生成DslValidator类的操作步骤
核心配置修改(推荐方案)
直接修改MWE2工作流的Validator生成规则,关闭默认的Stub类生成即可:
- 打开你的项目中后缀为
.mwe2的工作流配置文件 - 找到
org.eclipse.xtext.generator.validation.ValidatorFragment的注册片段 - 新增
generateXtendStub = false属性配置,修改后的配置参考如下:
fragment = validation.ValidatorFragment { // 关闭自动生成Validator Stub类 generateXtendStub = false // 其余原有配置保持不变,例如: // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator" }
- 保存配置后重新运行MWE2工作流,src-gen目录下将不再自动生成同名的DslValidator类
备选方案:绑定覆盖
如果不想关闭自动生成逻辑,也可以通过显式绑定自定义Validator覆盖自动生成类的优先级,无需手动删除生成文件:
- 给你自行实现的自定义DslValidator类添加
@Singleton注解 - 在项目的RuntimeModule类中添加如下绑定代码,显式指定使用自定义实现:
@Override public Class<? extends AbstractDslValidator> bindAbstractDslValidator() { // 返回你的自定义Validator类全路径即可 return com.your.package.CustomDslValidator.class; }
内容的提问来源于stack exchange,提问作者umpapa
相关产品推荐
相关产品推荐

