CaiJingLong / kikt-blog-comment

0 stars 0 forks source link

posts/flutter/exists/upload-aar-to-maven/ #19

Open utterances-bot opened 4 years ago

utterances-bot commented 4 years ago

Flutter 1.12后 上传aar至maven私服 | caijinglong的博客

Flutter 1.12后 上传aar至maven私服

https://www.kikt.top/posts/flutter/exists/upload-aar-to-maven/

moonljt521 commented 4 years ago

请问,宿主项目接入flutter aar需要宿主必须用androidX 嘛

CaiJingLong commented 4 years ago

@moonljt521 没有尝试过, 但根据我的经验是不需要的, 但如果你flutter项目使用了androidX, 则宿主应该使用androidX

moonljt521 commented 4 years ago

因为flutter 1.12 用了androidx, 不过宿主还没迁移到x,引用后报了些莫名其妙的错误。

不过据以前的经验,如果宿主迁移到X,依赖的三方库不用手动改的,编译后会自动到X。

moonljt521 commented 4 years ago

ok,是这个问题,宿主要引入1.12也得迁移到x

jiezigg commented 4 years ago

为啥我的宿主app依赖aar之后提示ERROR: Failed to resolve:io.flutter.plugins.pathprovider:path_provider:1.0-SNAPSHOT

CaiJingLong commented 4 years ago

@jiezigg SNAPSHOT 这个后缀,我的开发环境下是不会出现的, 你的flutter项目和module的项目有什么区别?

jiezigg commented 4 years ago

我的maven仓库是2.14的,没有你的这种手动上传,我只能写脚本上传,然后他还是没有上传flutter依赖的第三方

CaiJingLong commented 4 years ago

@jiezigg 因为我确实不知道2.14是什么版本, 这个是maven私服的版本号? nexus的吗? 总不可能是maven的版本号吧.. 我手动只是为了演示而已, 至于nexus也是用的最新版, 不可能所有旧版本还去做一遍尝试 但实际上最终上传的也是用的脚本

如果你写的脚本参考了我项目里的, 就应该知道, 我是针对每个项目的pom文件修改了版本号而已

然后上传还是用的$ mvn deploy:deploy-file 命令, 这里尤其要注意pomFile属性的指定

至于SNAPSHOT 这个后缀据我所知是附加在版本号后, 这样以便于依赖方每次都会去自动拉取新版本, 也就是说这个版本号是为了远端不修改版本号的一种方案, 比较适合于开发时使用

https://www.kikt.top/posts/flutter/exists/upload-aar-to-maven/#%E7%BC%96%E5%86%99%E8%84%9A%E6%9C%AC 这个的targetVersion都加上-SNAPSHOT后缀即可

如果不知道问题出在哪里, 可以在远端查看pom的内容

比如我的flutter aar的pom文件会包含需要依赖的内容 image 同时, 你也要确定对应的依赖对应的版本(我这里是path_provider)也被传到了私服上

moonljt521 commented 4 years ago

另外请教个问题:我的宿主项目因为精简包大小问题只配置了abiFilters 'armeabi',没有设置其他架构,利用官方的本地依赖测试后,能编译通过,但是运行时缺少了libflutter.so, 以前的版本通过脚本: for arch in android-arm android-arm-profile android-arm-release; do pushd $arch cp flutter.jar flutter-armeabi-v7a.jar # 备份 unzip flutter.jar lib/armeabi-v7a/libflutter.so mv lib/armeabi-v7a lib/armeabi zip -d flutter.jar lib/armeabi-v7a/libflutter.so zip flutter.jar lib/armeabi/libflutter.so popd done 可以解决,但是1.12后不起作用了,libflutter的so文件在打包后没有被放到armeabi文件夹内,我手动拷贝进去不好使,请问这个怎么解决

CaiJingLong commented 4 years ago

@moonljt521 这个不太清楚 但我看你处理的都是flutter.jar, 但新项目是aar, 是不是因为文件名的原因造成你并没有复制成功呢?

zhangkaixiao23 commented 4 years ago

你好,请教个问题,有没有遇到过单个上传没问题,但使用脚本批量上传会报403的问题,账号密码都配置的没问题

CaiJingLong commented 4 years ago

@Casey 403一般是鉴权错误,个人建议是给终端挂charles或者fiddle这样的抓包代理 然后对比下请求

zhangkaixiao23 commented 4 years ago

大佬,我可以加你个qq么,帮我看看这个问题

ruidge commented 3 years ago

maven上传部分收获颇丰,不过发现个小问题final f = File( "${Directory.systemTemp.path}/${DateTime.now().millisecondsSinceEpoch}.sh"); 这里创建sh文件,我在本地电脑上跑DateTime.now().millisecondsSinceEpoch可能会出现相同的情况,然后前面的文件会被覆盖,导致上传会有遗漏的问题.改成从循环外传入唯一的name就可以了.

CaiJingLong commented 3 years ago

maven上传部分收获颇丰,不过发现个小问题final f = File( "${Directory.systemTemp.path}/${DateTime.now().millisecondsSinceEpoch}.sh"); 这里创建sh文件,我在本地电脑上跑DateTime.now().millisecondsSinceEpoch可能会出现相同的情况,然后前面的文件会被覆盖,导致上传会有遗漏的问题.改成从循环外传入唯一的name就可以了.

因为自己写的时候测试样本小,有bug很正常🌝🌝

po1arbear commented 3 years ago

博主你好,请问如何配置aar文件打包的名称。 我目前在mvn脚本中直接修改aar产物名称,但是上传会报错,应该是和生成的pom文件内容不一致,希望大佬解答

nysin commented 3 years ago

博主请教几个问题: 1) 我使用flutter SDK: Flutter (Channel stable, v1.12.13+hotfix.6 .命令行flutter build aar 集成shared_preferences ^0.5.4+3 失败的,是因为插件版本的问题么? 2)你那个脚本是在flutter 主工程目录下么,怎么运行啊,我按照你写的执行 报命令找不到呢

tongzifang commented 2 years ago

博主你好,请问我按照步骤本地引用aar可以,但是手动上传aar到maven再引用后,就找不到io.flutter.app.FlutterApplication等一堆东西,是因为混淆还是其他什么原因么

tongzifang commented 2 years ago

就是这个问题 https://github.com/flutter/flutter/issues/49158