如何在多模块项目中配置 Flutter 模块

Posted

技术标签:

【中文标题】如何在多模块项目中配置 Flutter 模块【英文标题】:How to configure the Flutter module in multi module project 【发布时间】:2020-03-01 00:52:07 【问题描述】:

我有一个由许多模块组成的 android 项目,其中一些模块依赖于另一个模块。我想创建一个新模块,用作我项目的颤振原生部分。

所以我想要一个这样的结构:

- root
 |- moduleA
 |- moduleB
 |- moduleC
 |- FlutterModule
   |- lib
   |- ios
   |- android

FlutterModule/android 项目将使用模块 A 中的一些依赖项(可能使用模块 B 和 C)。 问题是 main build.gradle 必须在根文件夹中,而不是 Flutter 想要的那样在 FlutterModule/android 中。

目前我在打开 FlutterModule 后无法构建 Android 项目,因为它说“AndroidManifest.xml”丢失,但真正的问题是 FlutterModule/android 中缺少 build.gradle。 有一个解决方法 - 我可以先构建 ios 代码(然后编译 dart 代码),然后从我的根文件夹中调用 AndroidStudio 任务来构建 FlutterModule/android 模块,就像普通的 android 项目一样。 这行得通,但不是应该处理的方式......

我知道我不应该在 android/ios 项目中创建 FlutterModule,但这是我们的基础设施现在的工作方式,所以我必须这样做。没有人会同意从这个 moduleA 创建插件并将其发布到 flutter.pub。也没有人会为我创建单个 Flutter 项目的 CI 管道。

【问题讨论】:

【参考方案1】:

好像暂时不支持。在 github 上查看此问题:https://github.com/flutter/flutter/issues/39707#issuecomment-529716918。

【讨论】:

以上是关于如何在多模块项目中配置 Flutter 模块的主要内容,如果未能解决你的问题,请参考以下文章

如何在多模块 Gradle 项目中构建分发包?

在多模块化项目中查看解析器配置

在多模块 Maven 项目中构建所有模块后,如何运行集成测试?

maven ::在多模块项目中仅运行单个测试

如何在多模块 Maven 项目中自动重用依赖版本?

如何在多目录项目中正确导入 python 模块?