build
build copied to clipboard
Build fails in precompile due to missing classes it's supposed to generate
Getting a failure during precompile:
$ dart run build_runner build -d -v
Building package executable... (7.2s)
Built build_runner:build_runner.
[INFO] Entrypoint:Generating build script...
[INFO] Entrypoint:Generating build script completed, took 389ms
[INFO] Bootstrap:Precompiling build script......
[WARNING] Bootstrap:
lib/main.dart:3:8: Error: Error when reading 'lib/objectbox.g.dart': No such file or directory
import 'package:ob_test/objectbox.g.dart';
^
lib/main.dart:13:14: Error: 'Store' isn't a type.
late final Store store;
^^^^^
lib/main.dart:15:13: Error: Method not found: 'openStore'.
store = openStore();
^^^^^^^^^
// ...
[SEVERE] Bootstrap:
Failed to precompile build script .dart_tool/build/entrypoint/build.dart.
This is likely caused by a misconfigured builder definition.
This methods are generated by Objectbox. But the build fails way before giving the chance to Objectbox to generate them. It's a catch 22.
build_runner: ^2.4.6
, Dart SDK version: 3.1.2 (stable)
Using Objectbox, which has two builders: resolver
, generator
.
I created my own to run before resolver
, as it generates code that should be consumed by resolver
.
builders:
data_model_builder:
import: "package:ob_test/builders/data_model_builder.dart"
builder_factories: ["dataModelBuilder"]
build_extensions: { "$lib$": ["entities.g.dart"] }
auto_apply: dependents
build_to: source
runs_before: ["objectbox_generator|resolver"]
I've seen data_model_builder
properly output entities.g.dart
so I know it's some configuration issue.
What is the right config for running my builder before Objectbox?