方案1 搭建pub私有服務(wù)剩蟀,依賴庫發(fā)布到pub私服上
搭建pub私服
使用 https://github.com/dart-archive/pub_server dart官方的開源項目
參考:https://blog.csdn.net/ameryzhu/article/details/101688994
發(fā)布插件到pub私服
-
創(chuàng)建一個 dart package項目
完成項目功能開發(fā)豹缀;配置項目的 發(fā)布地址呀邢,即pub私服的上傳路徑
- 項目發(fā)布前 檢測(并不上傳項目)
flutter pub publish --dry-run
- 檢測通過,開始發(fā)布
flutter packages pub publish --server=http://127.0.0.1:8081
雖然是 pub私服,依然要求 登錄驗證google賬號,才能夠繼續(xù)發(fā)布岗钩,坑。
這是因為 發(fā)布項目到 pub倉庫的命令是 "flutter pub publish" 是dart sdk提供的 工具肖油,而且項目插件的驗證 ,身份的識別也寫到了pub publish命令當(dāng)中臂港;
解決思路(不考慮技術(shù)實現(xiàn))要么根據(jù)提示 進(jìn)行g(shù)oogel的oauth2授權(quán)森枪;要么 修改“pub publish”命令的 驗證部分的代碼
- 嘗試修改 “pub publish”命令的 驗證部分的代碼
首先,這是flutter sdk中的內(nèi)置dart-sdk的 pub命令的 腳本
實際 執(zhí)行的是 dart-sdk/bin/snapshots/pub.dart.snapshot 這個
snapshot文件
什么是snapshot文件?
是dart 代碼編譯后的字節(jié)碼序列文件审孽,dartvm能夠高效的執(zhí)行 代碼http://www.cndartlang.com/984.html
參考:https://blog.csdn.net/ameryzhu/article/details/101688994
http://www.reibang.com/p/9ee523958b23
這兩篇技術(shù)文章县袱,下載https://github.com/dart-lang/pub
編譯pub的dart代碼 生成的 mypub.dart.snapshot文件 ,并修改pub文件的路徑指向為
# Run the pub snapshot.
DART="$BIN_DIR/dart"
if array_contains "--no-preview-dart-2" "${VM_OPTIONS[@]}"; then
echo "Pub no longer supports Dart 1"
exit -1
else
SNAPSHOT="$BIN_DIR/snapshots/mypub.dart.snapshot"
exec "$DART" "${VM_OPTIONS[@]}" "$SNAPSHOT" "$@"
fi
在執(zhí)行 flutter pub publish 的時候報錯了
無效的內(nèi)核二進(jìn)制文件佑力,初步猜測本機flutter的dart版本和從https://github.com/dart-lang/pub 下載的pub代碼使用的dart版本不一致
暫時記錄..
方案2: 依賴庫 存放到 私有g(shù)it倉庫
- 使用本地插件:
插件名稱:
path: ‘插件路徑’
- 使用git倉庫插件
git倉庫插件
插件名稱:
git:
url: git://github.com/jlouage/xx.git
ref: master