Rust
实际场景,不仅需要依赖https://crates.io/的公共mod
,自己依赖的git
私库服务也是常见现象。
cargo
正好也解决了私库依赖的问题。详细说明见链接:
https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-git-repositories
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 :表示当前
git
上的tag
号 -
branch :表示当前
git
的 分支号
通常,我们会采用tag
对依赖的git代码管理;branch
的缺点无法lock
代码。 - 执行cargo build
正常情况下,cargo build
可以正常下载crates.io
和git私库代码
- 执行cargo build
网友评论