Rust實際場景,不僅需要依賴https://crates.io/的公共mod,自己依賴的git私庫服務(wù)也是常見現(xiàn)象。
cargo正好也解決了私庫依賴的問題。詳細(xì)說明見鏈接:
https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-git-repositories

image.png
cargo git私庫解決辦法
- 添加
.ssh/config配置
- 添加
Host *
UseKeychain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/id_rsa
- 指定私鑰文件
ssh-add -K ~/.ssh/id_rsa
- cargo 的toml文件添加依賴,如下
[package]
name = "demo_rust"
version = "0.1.0"
authors = ["baoyachi <baoyachi>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
json = "0.4"
pretty_env_logger = "0.3"
serde = "1.0"
common-utils = { git = "ssh://git@xxx.com/common/common-utils.git", tag = "v0.0.1" }
common-log = { git = "ssh://git@xxx.com/common/common-log.git", branch = "master" }
這里的 common-utils common-log 就是私庫的具體依賴。
common-utils = { git = "ssh://git@xxx.com/common/common-utils.git", tag = "v0.0.1" }
common-log = { git = "ssh://git@xxx.com/common/common-log.git", branch = "master" }
這里的git使用
ssh方式訪問tag :表示當(dāng)前
git上的tag號branch :表示當(dāng)前
git的 分支號
通常,我們會采用tag對依賴的git代碼管理;branch的缺點無法lock代碼。- 執(zhí)行cargo build
正常情況下,cargo build可以正常下載crates.io和git私庫代碼
- 執(zhí)行cargo build