You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何运行build_runner生成.g2.dart文件?swagger_dart_code_generator构建求助

解决swagger_dart_code_generator的build_runner冲突与代码贡献指南

一、解决build_runner生成文件后缀不匹配的问题

该项目使用.g2.dart作为JSON序列化文件后缀,而默认的json_serializable生成.g.dart,导致冲突。可通过以下方式修改配置:

1. 全局配置(推荐)

在项目根目录创建或修改build.yaml文件,添加json_serializable的输出后缀配置:

targets:
  $default:
    builders:
      json_serializable:
        options:
          output_extension: '.g2.dart'

配置完成后,执行dart run build_runner build即可生成符合项目要求的.g2.dart文件。

2. 单个类配置

若仅需修改特定类的输出后缀,可在@JsonSerializable注解中指定:

@JsonSerializable(outputExtension: '.g2.dart')
class YourModel extends Object with _$YourModelSerializerMixin {
  // 类定义内容
}

额外步骤:清理旧文件

执行构建前,建议先清理之前生成的.g.dart文件,避免文件冲突:

dart run build_runner clean

二、无贡献文档时的代码贡献步骤

如果项目没有明确的贡献指南,可按以下流程操作:

  • Fork仓库:将swagger_dart_code_generator仓库fork到自己的代码托管账户下
  • 克隆本地:把fork后的仓库克隆到本地开发环境,执行dart pub get安装所有依赖
  • 熟悉项目结构:重点查看项目中处理JSON序列化的相关代码,确认.g2.dart后缀的配置逻辑(通常在build.yaml或自定义builder中)
  • 开发功能:基于现有代码风格实现你需要的功能增强,确保修改的带@JsonSerializable注解的类能正常生成.g2.dart文件
  • 本地测试:运行项目自带的测试用例(dart test),同时手动执行build_runner验证生成的代码是否符合预期
  • 提交PR:将修改推送到自己的fork仓库,然后向原项目提交Pull Request,PR中清晰说明功能点、修改内容及测试结果

内容的提问来源于stack exchange,提问作者Adam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 04:12:35