gpt4 book ai didi

android - 如何构建和发布 flutter aar?

转载 作者:行者123 更新时间:2023-12-04 17:27:39 24 4
gpt4 key购买 nike

我正在做一个 flutter 项目,我正在用它来构建 aar。按照 flutter 提供的说明,我可以将这个 aar 集成到我的原生 android 项目中。
但我的问题是这个 aar 是本地集成的。我想 maven-publish 这个 aar 以便团队成员可以轻松访问它。

publishing 的帮助下,可以从本地库中发布。年级的任务。但是对于 flutter 库,我不确定我们应该做什么。所以,我需要这方面的帮助。

最佳答案

我试图弄清楚同样的事情..我没有,真的,但这是我走了多远:
第一次尝试
它有点乱,可能会被覆盖,但我可以通过将 maven-publish 内容添加到生成的项目 gradle .android/Flutter/build.gradle 来发布到本地 Nexus 存储库它似乎负责建立图书馆。

apply plugin: 'maven-publish'

...

afterEvaluate {
publishing {
repositories {
maven {
url = "http://10.2.0.210:8081/repository/maven-releases/"
credentials{
username "a"
password "b"
}
}
}

publications {
// Creates a Maven publication called "release".
release(MavenPublication) {
// Applies the component for the release build variant.
from project.components.release

// You can then customize attributes of the publication as shown below.
groupId = 'com.example.myflutmod'
artifactId = 'something_module'
version = '0.1.0'
}
// Creates a Maven publication called “debug”.
debug(MavenPublication) {
// Applies the component for the debug build variant.
from project.components.debug

groupId = 'com.example.myflutmod'
artifactId = 'something_module'
version = '0.1.0'
}
}
}
}
然后我做了
flutter build aar
./gradlew -b .android/Flutter/build.gradle publish
最后在主 android 应用程序项目中添加相同的 maven 存储库配置和一个依赖项 implementation "com.example.myflutmod:something_module:0.1.0" 但是它没有在上传中包含“插件依赖 aars”(就像我的例子中的 url_launcher),所以应用程序没有构建。
这可能很容易添加,尽管我没有考虑过。
另外的选择
所以相反,我更深入地发现,在修改 flutter 工具时,很容易通过将文件系统存储库替换为您的自定义存储库来上传它构建的所有 .aar。所以在 aar_init_script.gradle在你的flutter sdk安装下:
diff --git a/packages/flutter_tools/gradle/aar_init_script.gradle b/packages/flutter_tools/gradle/aar_init_script.gradle
index cc2bbe6f98..242ac61fb0 100644
--- a/packages/flutter_tools/gradle/aar_init_script.gradle
+++ b/packages/flutter_tools/gradle/aar_init_script.gradle
@@ -37,7 +37,10 @@ void configureProject(Project project, String outputDir) {
project.uploadArchives {
repositories {
mavenDeployer {
- repository(url: "file://${outputDir}/outputs/repo")
+ //repository(url: "file://${outputDir}/outputs/repo")
+ repository(url: "http://10.2.0.210:8081/repository/maven-releases/") {
+ authentication(userName: "a", password: "b")
+ }
}
}
}
看起来对他们来说添加一些属性或切换到构建命令以使其使用外部配置的存储库相当简单。
也许将来会有PR。
但现在我更倾向于只制作一个上传 file://${outputDir}/outputs/repo 中的任何内容的脚本。而是在构建后“手动”。

关于android - 如何构建和发布 flutter aar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62284466/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com