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

Flutter自定义generator的build_runner不再生成.g文件至项目目录

自定义Generator生成的.g.dart文件仅存于缓存目录,无法同步到项目目录

我之前写了一个基于source_gen和build_runner的自定义Generator,用于模型和XML的相互转换,一直正常工作。但从昨天开始,执行dart run build_runner build时,只有这个自定义Generator不会把.g文件生成到项目对应文件夹里。项目里的ObjectBox、Dio等第三方Generator还能正常生成文件到指定目录,自定义Generator的文件虽然能正确生成在.dart_tool/build/generated缓存目录,但不会同步到项目目录。


build.yaml 配置

targets:
  $default:
    builders:
      generators|annotations:
        enabled: true

builders:
  generators:
    target: ':generators'
    import: 'package:generators/builder.dart'
    builder_factories: ['fromResponse', 'toRequest','toXmlPart']
    build_extensions: {'.dart': ['.g.dart'] }
    auto_apply: dependents
    build_to: cache
    applies_builders: ['source_gen|combining_builder']

build_runner 执行输出(末尾片段)

[FINE] generators on lib/features/login/data/data_sources/loginApi.dart:Running ToXmlPartGenerator
[FINE] generators on lib/features/login/domain/entities/services/KACZZV1R1_request.dart:Running ToXmlPartGenerator
[FINE] generators on lib/features/login/domain/entities/services/KACZZV1R1_response.dart:Running ToXmlPartGenerator
[FINE] generators on lib/features/login/presentation/bloc/login_bloc.dart:Running ToXmlPartGenerator
[FINE] generators on lib/features/settings_screen/presentation/bloc/settings_bloc.dart:Running ToXmlPartGenerator
[INFO] Build:Running build completed, took 40.5s

[INFO] Build:Caching finalized dependency graph...
[INFO] Build:Caching finalized dependency graph completed, took 92ms

[INFO] Build:Succeeded after 40.6s with 58 outputs (1651 actions)

pubspec.yaml 相关依赖配置

dependencies:
  flutter:
    sdk: flutter
  path: ^1.8.3
  path_provider: ^2.0.15
  retrofit: any
  logger: any
  mocktail: ^0.3.0
  objectbox: ^2.0.0
  objectbox_flutter_libs: any
  annotations:
    path: ../annotations/
  analyzer: ^5.13.0


dev_dependencies:
  flutter_test:
    sdk: flutter
  build_runner: ^2.4.4
  retrofit_generator: any
  test:
  bloc_test: ^9.1.2
  generators:
    path: ../generators/
  objectbox_generator: 2.0.0
  json_serializable: ^6.7.0 

已尝试的无效修复方法

  • 确认文件中已正确添加part 'file.g.dart'声明
  • 执行flutter clean、flutter pub get、flutter pub upgrade
  • 执行dart run build_runner build --delete-conflicting-outputs
  • 删除.dart_tool/文件夹
  • IDE中执行Invalidate caches and restart
  • 检查注解使用正确性(此前无问题)
  • 以管理员身份运行Android Studio
  • 确认dart run build_runner generate-build-script显示的项目路径正确
  • 升级至最新Flutter版本

期望结果

自定义Generator生成的.g.dart文件能正常输出到项目对应文件夹中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 23:47:22