'Stop flutter build runner from rebuilding my plugin

I have the following file structure in my flutter project

lib
- router
-- router.gr
plugins
- myplugin //is a dart package
-- input_folder
--- swagger.json
-- lib
--- swagger_generated_code
--- myplugin.dart
-- build.yml

and I use the following packages

https://pub.dev/packages/auto_route

the router.gr is related to the auto_route package

https://pub.dev/packages/swagger_dart_code_generator

and the plugin is related to the swagger_dart_code_generator packge

The plugin has this build.yml from plugins/myplugin/build.yml

targets:
  $default:
    sources:
      - lib/**
      - input_folder/**
    builders:
      chopper_generator:
        options:
          header: "//Generated code"
      swagger_dart_code_generator:
        options:
          input_folder: "input_folder/"
          output_folder: "lib/swagger_generated_code/"

But what ends up happening is that I run

flutter packages pub run build_runner build  

in my project root to rebuild the router as specified by the auto_route package. Which then gives the following error

FileSystemException: Cannot create file, path = './.dart_tool' (OS Error: Access is denied.
, errno = 5)
dart:io                                                                     _File.createSync
package:swagger_dart_code_generator/swagger_dart_code_generator.dart 61:30  _generateExtensions
package:swagger_dart_code_generator/swagger_dart_code_generator.dart 99:32  SwaggerDartCodeGenerator.buildExtensions
package:build_runner_core/src/package_graph/apply_builders.dart 403:33      _validateBuilder
package:build_runner_core/src/package_graph/apply_builders.dart 183:9       new BuilderApplication.forBuilder.<fn>.<fn>
package:build_runner_core/src/package_graph/apply_builders.dart 346:27      _createBuildPhasesForBuilderInCycle.<fn>.<fn>
dart:core                                                                   Iterable.toList
package:build_runner_core/src/package_graph/apply_builders.dart 293:8       createBuildPhases
package:build_runner_core/src/generate/build_impl.dart 109:29               BuildImpl.create
package:build_runner_core/src/generate/build_runner.dart 34:42              BuildRunner.create
package:build_runner/src/generate/build.dart 109:35                         build
package:build_runner/src/entrypoint/build.dart 35:18                        BuildCommand._run
package:args/command_runner.dart 209:13                                     CommandRunner.runCommand
package:build_runner/src/entrypoint/run.dart 26:18                          run
.dart_tool\build\entrypoint\build.dart 35:16                                main

If I open the plugin folder in a separate window and run the build command in there it works just fine for the plugin.

Is there a way to ignore the plugin folder when rebuilding the router perhaps?

But mainly my question is how can I rebuild my router.gr with my current structure? I can't remove the plugins folder, it needs to stay there as it is.

These are the versions I use

  build_runner: ^2.1.8
  auto_route_generator: ^3.2.3
  chopper_generator: ^4.0.5
  json_serializable: ^6.1.4
  swagger_dart_code_generator: ^2.4.6

And I am on flutter version 2.10.3



Solution 1:[1]

Please share the code where you're initializing AutoRoute.

Meanwhile, this is what I would suggest:

  • Check if you're not doing anything wrong in the initialization/usage.

  • Make sure you are using build_runner in dev_dependencies.

  • Run this command on project root for one-time code generation: flutter pub run build_runner watch

Solution 2:[2]

Hi you can execute the buildrunner in a specific folder:

flutter pub run build_runner build lib/ --delete-conflicting-outputs

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Ahmad Khan
Solution 2 A.K.