当前位置: 首页 > 知识库问答 >
问题:

代码生成器doGenerate不会将代码生成到示例Xtext项目中的txt文件

卫浩瀚
2023-03-14

我试图理解代码生成器doGenerate如何调用。我拿了一个没有任何自定义更改的Xtext Project示例(只有问候)。由默认代码生成器看起来像这样:

override void doGenerate(Resource resource, IFileSystemAccess2 fsa, IGeneratorContext context) {
    fsa.generateFile('greetings.txt', 'People to greet: ' + 
        resource.allContents
            .filter(Greeting)
            .map[name]
            .join(', '))
}

运行生成的Eclipse插件并在/src中创建了新的Java项目,文件扩展名为right(src.MyDsl)。并将项目转换为xtext nature,我写了一些问候语并保存了下来。但在src gen中,我没有看到生成的文件问候语。txt。所以解释器工作,但不保存代码。

我发现有一个问题:没有调用xtext dogenerate方法是因为我想要保存代码的文件需要正确的文件扩展名(区分大小写)-(完成),需要启用项目-xtext nature-(完成)并自动生成。

我的问题是如何让它自动使用doGenerate代码生成器?所以我可以在问候语中看到生成的代码。txt

共有1个答案

薛彭薄
2023-03-14

你得确保

  • 您的模型项目具有Xtext性质和构建器(右键单击,配置)-如果您打开文件,应该询问您
  • 您已自动启用构建
  • 如果模型项目是java项目,模型文件应该在源文件夹中
  • 文件扩展名正确(区分大小写)src。MyDsl在这方面看起来很可疑

 类似资料:
  • 我用Xtext写了一个DSL。我想要的是执行DSL,从中获得一些好的结果。 我编写了myDslGenerator类,在xtend中实现接口IGenerator,以生成java代码,它运行良好。 我有两个问题; 解释器和代码生成器有什么区别?不都是为了执行DSL吗? 如何编写一个解释器?有没有一步一步的教程链接?我找到了许多使用xint生成代码的教程,但找不到任何用于编写解释器的教程。 谢谢你, 萨

  • Jboot 内置了一个简易的代码生成器,可以用来生成model层和Service层的基础代码,在生成代码之前,请先配置jboot.properties关于数据库相关的配置信息,Jboot 代码生成器会通过该配置去链接数据库。 jboot.datasource.type=mysql jboot.datasource.url=jdbc:mysql://127.0.0.1:3306/jbootdemo

  • 遵照此规范,在实际操作中,有许多重复。接下来推荐一款专为本规范量身定做的代码生成器 Laravel 5.x Scaffold Generator。 本扩展支持 5.1 ~ 5.5 版本的 Laravel。 只需要一个命令: 即可生成: $ php artisan make:scaffold Projects --schema="name:string:index,description:text:

  • 我正在根据参考指南学习使用Map结构。日食验证是 面向Web开发人员的Eclipse Java EE IDE。版本:开普勒服务版本2 pom。xml如下所示,与参考指南相同 它表示在构建项目时将生成实现代码。但是,它似乎不会在目标/生成的源文件夹下生成

  • Sergen 有一些额外的配置选项,你可以通过解决方案目录下的配置文件(Serenity.CodeGenerator.config)设置。 这是所有的配置选项: public class GeneratorConfig { public List<Connection> Connections { get; set; } public string KDiff3Path { get

  • 我使用jOOQ程序代码生成数据库,但现在我遇到了一些问题。在数据库中,我有表A和表B。第一次都生成了pojo、dao、接口等。经过一段时间的开发,我发现表A需要添加一些字段或修改一些字段,所以我不得不再次编码,然后jOOQ代码生成器将覆盖现有的代码,这让我很难过。当我在排除表的情况下使用“排除A”时,发现只生成了表A的数据,表B将被删除。我不知道如何处理这个问题。我的代码生成器如下: